首页 > 编程语言 >java常用注解校验参数

java常用注解校验参数

时间:2022-10-12 09:11:05浏览次数:79  
标签:DecimalMin java string 验证 元素 校验 value 注解

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注解即可

标签:DecimalMin,java,string,验证,元素,校验,value,注解
From: https://www.cnblogs.com/wyj-java/p/16779990.html

相关文章

  • java 字体绘制
    一、前提1、如下图是组件的继承关系可以看到所有的组件都继承Component2、绘制函数界面显示或者窗口大小改变的时候,都会调用protectedvoidpaintComponent(Graphicsg......
  • 《Effective Java》
    《EffectiveJava》  第1章引言 第2章创建和销毁对象 第1条:考虑用静态工厂方法代替构造器 第2条:遇到多个构造器参数时要考虑用构建器 第3条:用私有构造器或者枚举......
  • JavaScript works behind the scenes -- Engine and Runtime
    whatisaJavaScriptengine?programthatexecutesJavaScriptcode.JavaScript引擎是运行JavaScript代码的程序。howengineworks?JavaScriptcontainsacallsta......
  • Java中equals和==区别
    “==”和equals的区别......
  • 【Java8新特性】- Optional应用
    Java8新特性-Optional应用......
  • 阿里云Java上传文件(含解压zip)
    1、maven<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.1.0</ver......
  • java二维数组
    java二维数组数组一经定义就不能改变长度packagearray;​publicclassArrayDemo04{  publicstaticvoidmain(String[]args){    int[][]num={{1......
  • java数组进阶
    java数组进阶数组一经定义就不能改变长度packagearray;​publicclassArrayDemo03{  publicstaticvoidmain(String[]args){    int[]numbers={1,2......
  • 最长公共前缀(Java)
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["d......
  • 2022 最新 Java 基础 面试题(二)
    2022最新Java基础面试题(二)​​下面列出这份Java面试问题列表包含的主题​​​​1、Java中能创建volatile数组吗?​​​​2、volatile能使得一个非原子操作变成原......