java常用注解校验参数

2022-10-26 14:26:56 浏览数 (2)

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的字符串表示形式,因此可以是小数。例如:

代码语言:javascript复制
@DecimalMin(value = "0.01",message = "金额不得小于0.01元")

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

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

0 人点赞