JSR-303 常用的数据校验
一、JSR-303简介
JSR-303 是 Java EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是hibernate Validator。
此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。 Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。
注:可以使用注解的方式进行验证
二、常用校验注解
1、空检查
Constraint | 详细信息 |
---|---|
@Null | 验证对象是否为null |
@NotNull | 验证对象是否不为null,无法检查长度为0的字符串 |
@NotBlank | 检查约束字符串是不是NULL还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格。 |
@NotEmpty | 检查约束元素是否为NULL或者EMPTY. |
2、Boolean检查
Constraint | 详细信息 |
---|---|
@AssertTrue | 验证 Boolean 对象是否为 true |
@AssertFalse | 验证 Boolean 对象是否为 false |
3、长度检查
Constraint | 详细信息 |
---|---|
@Size(min=,max=) | 验证对象(Array,Collection,Map,String) 长度是否在给定方位之内 |
@Length(min=,max=) | Validates that the annotated string is between min and max included. |
4、日期检查
Constraint | 详细信息 |
---|---|
@Past | 验证 Date 和 Calendar 对象是否在当前时间之前 |
@Future | 验证 Date 和 Calendar 对象是否在当前时间之后 |
@Pattern | 验证 String 对象是否符号正则表达式的规则 : 正则表达式 |
三、使用示范
@NotNull(message="名字不能为空")
private String userName;
@Max(Value=120,message="年龄最大不能超过120"
private int age;
@Email(message="邮箱格式错误")
private String email;