springmvc校验表单

来源:互联网 发布:sql语法基础知识 编辑:程序博客网 时间:2024/06/02 04:27

1.因为是在maven项目下,需要引入如下三个包

  <dependency>      <groupId>org.hibernate</groupId>      <artifactId>hibernate-validator</artifactId>      <version>5.3.5.Final</version>    </dependency>    <dependency>      <groupId>javax.validation</groupId>      <artifactId>validation-api</artifactId>      <version>1.1.0.Final</version>    </dependency>    <dependency>      <groupId>org.jboss.logging</groupId>      <artifactId>jboss-logging</artifactId>      <version>3.3.1.Final</version>    </dependency>

2.springmvc的配置文件中,只需要写一句话

 <mvc:annotation-driven/>

不需要再添加了。

3.Pojo中添加一些注解,比如@Past所选时间不能是将来的。

    @Past    @DateTimeFormat(pattern="yyyy-MM-dd")    private Date becomeStudent;    @NotNull    private String username;

4.在控制层里的方法里要对加以判断的方法参数前面加上@Valid,而且方法里一定要有Error对象,那么它的子集BindingResult也是可以的:

@RequestMapping(value = "/add.do",method = RequestMethod.POST)    public String add(@Valid Student student, BindingResult result,Model model, ModelMap modelMap){        if(result.getErrorCount()>0){            for(FieldError error : result.getFieldErrors()){                log.info(error.getField()+"  "+error.getDefaultMessage() );            }        }        model.addAttribute(student);        modelMap.put("stu",student);        log.info(student.toString());        return "listStudent";    }

一定要写在@Valid后面,有几个待验证的参就出现几次BindResult.

JSR303的验证类型:

@Null                 被注释的元素必须为 null@NotNull               被注释的元素必须不为 null@AssertTrue              被注释的元素必须为 true@AssertFalse             被注释的元素必须为 false@Min(value)              被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max(value)                被注释的元素必须是一个数字,其值必须小于等于指定的最大值@DecimalMin(value)          被注释的元素必须是一个数字,其值必须大于等于指定的最小值@DecimalMax(value)          被注释的元素必须是一个数字,其值必须小于等于指定的最大值@Size(max, min)             被注释的元素的大小必须在指定的范围内@Digits (integer, fraction)    被注释的元素必须是一个数字,其值必须在可接受的范围内@Past                 被注释的元素必须是一个过去的日期@Future                被注释的元素必须是一个将来的日期@Pattern(value)           被注释的元素必须符合指定的正则表达式//-----------------下面是hibernate-valitor新增加的@Email                 被注释的元素必须是电子邮箱地址@Length                被注释的字符串的大小必须在指定的范围内@NotEmpty               被注释的字符串的必须非空@Range                 被注释的元素必须在合适的范围内
原创粉丝点击