Spring 提供的效验规则
Bean Validation 中内置的 constraint
Constraint | 用法 | 适用类型 | 约束来源 |
---|---|---|---|
@Null | 被注解的字段必须为空 | JSR303 | |
@NotNull | 被注解的字段必须不为空 | JSR303 | |
@NotBlank | 带注释的元素不能为null,并且必须至少包含一个非空白字符 | JSR380 | |
@NotEmpty | 带注释的元素不能为null也不能为空。 | String(长度)集合(大小)数组(长度) | JSR380 |
@AssertTrue | 检查该字段必须为True | Boolean | JSR303 |
@AssertFalse | 检查该字段必须为False | Boolean | JSR303 |
@Min(value) | 被注解的字段必须大于等于指定的最小值 | Boolean | JSR303 |
@Max(value) | 被注解的字段必须小于等于指定的最大值 | Boolean | JSR303 |
@Negative | 带注释的元素必须是严格的负数(0被认为是无效值) | BigDecimal,BigInteger, byte,short,int,long及其的包装类 | JSR380 |
@NegativeOrZero | 带注释的元素必须是严格的负数或0 | BigDecimal,BigInteger, byte,short,int,long及其的包装类 | JSR380 |
@Positive | 带注释的元素必须是严格的正数数(0被认为是无效值) | BigDecimal, byte,short,int,long及其的包装类 | JSR380 |
@PositiveOrZero | 带注释的元素必须是严格的正数或0 | BigDecimal,BigInteger, byte,short,int,long及其的包装类 | JSR380 |
@DecimalMin | 被注解的字段必须大于等于指定的最小值 | BigDecimal、BigInteger、String, byte,short,int,long及其的包装类 | JSR303 |
@DecimalMax | 被注解的字段必须小于等于指定的最大值 | BigDecimal、BigInteger、String, byte,short,int,long及其的包装类 | JSR303 |
@Size(min=,max=) | 被注解的字段的Size必须在min和max之间,不需要判空 | 字符串、数组、集合 | JSR303 |
@Digits(integer, fraction) | 被注解的字段必须在指定范围内,整数部分长度小于integer,小数部分长度小于fraction | 字符串、数组、集合 | JSR303 |
@Past | 被注解的字段必须是一个过去的日期 | 字符串、数组、集合 | JSR303 |
@PastOrPresent | 被注解的字段必须是过去或现在的日期或时间。 | JSR380 | |
@Future | 被注解的字段必须是一个将来的日期 | 字符串、数组、集合 | JSR303 |
@FutureOrPresent | 被注解的字段必须是现在或将来的日期或时间。 | JSR380 | |
@Email | 字符串必须是格式正确的电子邮件地址 | String | JSR380 |
@Pattern(value) | 被注释的字段必须符合指定的正则表达式 | 字符串、数组、集合 | JSR303 |
Hibernate Validator 附加的 constraint
数据整理自版本 hibernate-validator-6.0.11.final
api文档
Constraint | 用法 | 适用类型 |
---|---|---|
@CreditCardNumber | 带注释的元素必须代表有效的信用卡号。 这是Luhn算法实现,旨在检查用户错误,而不是信用卡有效性! | |
@EAN | 检查带注释的字符序列是否为有效的EAN 13(条形码)编号。 验证号码和校验位的长度支持的类型是CharSequence。null被认为是有效的。 | |
@ISBN | 检查带注释的字符序列是否为有效的国际标准书号(ISBN))。 数字的长度和校验位都经过验证。支持的类型是CharSequence。 null被认为是有效的。 验证期间,将忽略所有非ISBN字符。所有数字和’X’都被视为有效的ISBN字符。 | |
@Length | 检查带注释的字符串是否包含在最小值和最大值之间 | |
@Range(min,max) | 带注释的元素必须在min和max之间 | 数字或者可以被解析为数字的字符串 |
@SafeHtml(...) | 验证用户提供的富文本值,以确保它不包含恶意代码,例如嵌入的script元素。具体用法参考官方文档 | String |
@UniqueElements | 验证提供的Collection中的每个对象都是唯一的,即我们在集合中找不到2个相等的元素。 | Collection |
@URL | 验证带注释的字符串是否为URL。参考官方文档 | String |