java常用注解校验参数

validation 中内置的 constraints

注解 描述
@AssertFalse

 所注解的元素必须是Boolean类型,且值为 false

@AssertTrue 所注解的元素必须是 Boolean 类型,且值为 true
@DecimalMax(value) 验证 number 和 string 对象是否小等于指定的值,小数存在精度
@DecimalMin(Value) 验证 number 和 string 对象是否小等于指定的值,小数存在精度
@Email 被注释的元素必须是电子邮箱
@Size(min=, max=) 被注解的元素必须在制定的范围 (数据类型:String, Collection, Map and arrays)
@past 验证 date 和 calendar 对象是否在当前时间之前
@future 验证 date 和 calendar 对象是否在当前时间之后
@Pattern(regex=, flag=) 验证 string 对象是否符合正则表达式的规则
@Max(value) 验证 number 和 string 对象是否小等于指定的值
@Min(value) 验证 number 和 string 对象是否大等于指定的值
@Null 被注解的元素必须为 null
@NotNull 被注解的元素必须不为 null
@NotBlank CharSequence 子类型,验证注解的元素值不为空(包括不为 null 或去除首位空格后长度为 0)
@NotEmpty 被注释的对象必须不为空 (数据:String,Collection,Map,arrays)
@Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组, 那么对其中的元素进行递归校验, 如果是一个 map, 则对其中的值部分进行校验

 

hibernate validator 附加的 constraints

注解 描述
@Length(min=, max=) 被注释的字符串的大小必须在指定的范围内
@Range(min=, max=) 被注释的元素必须在合适的范围内 (支持 BigDecimal, BigInteger, String, byte, short, int, long 和原始类型的包装类)
@URL(protocol=, host=, port=, regexp=, flags=) 被注释的字符串必须是一个有效的 url
@SafeHtml(whitelistType=, additionalTags=) 被注解的元素检查是否标注值包含恶意的片段

 

 @Max(value)、@Min(value)、@DecimalMax(value)、@DecimalMin(Value) 区别:

1.@Max、@Min 接受一个 Long 类型的值

2.@DecimalMax、@DecimalMin 接受一个字符串类型的值(BigDecimal 的字符串表示形式,因此可以是小数。例如:

@DecimalMin(value = "0.01",message = "金额不得小于 0.01 元")

3. 数字超过 Long.MAX_VALUE 或 Long.MIN_VALUE 以下或者数字是小数,@DecimalMax、@DecimalMin 是唯一的选择。

 

        最后只需在 controller 层代码中加入@Valid注解即可