JSR303 数据校验
除了前端的 js 验证,服务端也可加入数据验证,springmvc 中有两种方式可以验证输入
- 利用 spring 自带的验证框架
- 利用 jsr303 实现
public class User {
@NotEmpty(message = "用户编码不能为空")
private String userCode;
@NotEmpty(message = "用户名称不能为空")
private String userName;
@NotNull(message = "密码不能为null")
@Length(min = 6, max = 10, message = "用户密码长度为6-10")
private String userPassword;
@Past(message = "必须是一个过去的时间")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
}
注解 | 功能 |
---|---|
@Notnull | 验证对象是否不为 mul,无法检査长度为 0 的字符串,于验证基本数据类型 |
@Null | 验证对象是否为 null |
@AssertTrue | 验证 Boolean 对象是否为 true |
@AssertFalse | 验证 Boolean 对象是否为 false |
@Max(value) | 验正 Number 和 String 对象是否小于等于指定的值 |
@Min(value) | 验正 Number 和 String 对象是否大于等于指定的值 |
@DecimalMax(value) | 被标注的值必须不大于约束中指定的最大值。这个约束的参数是一个通过 Big Decimal 定义的最大值的字符串表示,小数存在精度 |
@DecimalMin(value) | 被标注的值必须不小于约束中指定的最小值。这个约束的参数是一个通过 Big Decimal 定义的最小值的字符串表示,小数存在精度 |
@Digits(integer, fraction) | 验证字符串是否是符合指定格式的数字, Interger 指定整数精度, fraction 指定小数精度 |
@Size(min, max) | 验证对象(Array、Collection、Map、 String)长度是否在给定的范围之内 |
@Past | 验证 Date 和 Calendar 对象是否在当前时间之前 |
@Future | 验证 Date 和 Calendar 对象是否在当前时间之后 |
@Pattern | 验证 String 对象是否符合正则表达式的规则 |
@NotBlank | 检查约束字符串是不是 Null,被 Trim 的长度是否大于 0。只对字符串,且会去掉前后空格 |
@URL | 验证是否是合法的 url |
验证是否是合法的邮件地址 | |
@CreditCardNumber | 验证是否是合法的信用卡号码 |
@Length(min, max) | 验证字符串的长度必须在指定的范围内 |
@NotEmpty | 检査元素是否为 NULL 或者 EMPTY。用于 Array、Collection、Map、 String |
@Range(min, max, message) | 验证属性值必须在合适的范围内 |
这么多配置记不住可以到源码里看
本作品采用《CC 协议》,转载必须注明作者和本文链接