Hibernate Validator是JSR-303的一个实现。在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比。注解更加简洁、灵活。

注解说明

Bean Validation 中内置的 constraint

  1. @Null 被注释的元素必须为 null
  2. @NotNull 被注释的元素必须不为 null
  3. @AssertTrue 被注释的元素必须为 true
  4. @AssertFalse 被注释的元素必须为 false
  5. @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
  6. @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
  7. @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
  8. @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
  9. @Size(max=, min=) 被注释的元素的大小必须在指定的范围内
  10. @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
  11. @Past 被注释的元素必须是一个过去的日期
  12. @Future 被注释的元素必须是一个将来的日期
  13. @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式

Hibernate Validator 附加的 constraint

  1. @NotBlank(message =) 验证字符串非null,且长度必须大于0
  2. @Email 被注释的元素必须是电子邮箱地址
  3. @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
  4. @NotEmpty 被注释的字符串的必须非空
  5. @Range(min=,max=,message=) 被注释的元素必须在合适的范围内

在Pom中加入:

1
2
3
4
5
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
</dependency>

在spring-controller中使用:

1
2
3
4
5
6
7
8
9
10
@ResponseBody
@RequestMapping(value = "/validate", method = { RequestMethod.POST,
RequestMethod.GET })
public String validate(@Valid Hello hello, BindingResult result) {
if (result.hasErrors()) {
return "error";
}
return "ok";
}

Done!