springmvc校驗表單

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                 被註釋的元素必須在合適的範圍內
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章