Spring MVC 参数字段校验
校验规范
SR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,官方参考实现是Hibernate Validator。JSR 303 用于对Java Bean 中的字段的值进行验证。
Spring MVC 3.x之中支持 JSR-303,因此可以在控制器中对表单提交的数据方便地验证
内置规则汇总
注解 | 支持的数据类型 | 说明 | 举例 |
---|---|---|---|
@Valid | Any non-primitive type | 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验, 如果是一个map,则对其中的值部分进行校验 | |
@Size(min=, max=) | String, Collection,Map and arrays | ||
@Range(min=, max=) | BigDecimal,BigInteger, String,byte, short, int,long | 检查被注解的值是否在给定大小内 | @Range(min=1, max=10, message=”id必须在1-10之间”) |
@Pattern(regex=,flag=) | String | 检查该字符串是否能够在match指定的情况下被regex定义的正则表达式匹配 | |
@Past | java.util.Date,java.util.Calendar | 检查给定的日期是否比现在早 | |
@Null | Any type | 必须能为null | |
@NotNull | Any type | 不能为null | @NotNull(message = “广告ID不可为空”) |
@NotEmpty | String | 检查字符串是否不是空(null、”“) | @NotEmpty(message = “投放平台不可为空”) |
@NotBlank | String | 检查字符串是否不是空(null、”“、” “) | @NotBlank(message = “不能为空字符串”) |
@Min | BigDecimal, BigInteger,String, byte, short, int, long | 检查该值是否小于或等于约束条件中指定的最大值 | |
@Max | BigDecimal, BigInteger,String, byte, short, int, long | 检查该值是否小于或等于约束条件中指定的最大值 | @Min(value = 50, message = “广告出价不能小于0.5元”) |
@Length(min=, max=) | String | 检查字符串长度是否在约定范围内 | @Length(max = 20, message = “广告计划名称限制20字符”) |
@Future | java.util.Date,java.util.Calenda |