java常用注解校验参数
validation中内置的constraints
注解 | 描述 |
@AssertFalse |
所注解的元素必须是 类型,且值为false |
@AssertTrue | 所注解的元素必须是Boolean类型,且值为true |
@DecimalMax(value) | 验证 number 和 string 对象是否小等于指定的值,小数存在精度 |
@DecimalMin(Value) | 验证number 和 string 对象是否小等于指定的值,小数存在精度 |
被注释的元素必须是电子邮箱 | |
@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注解即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)