validator校验注解
validator-api校验注解
一、日期格式校验注解@DateValue
@DateValue(message = "", //返回信息groups = {}, //校验分组payload ={}, //有效载荷format = "", //校验格式required = true //是否必填,true(必填) false(选填))
1.message参数自定义返回信息。
message参数设置返回错误信息,默认为"“日期格式不正确,正确格式应为yyyy-MM-dd”"
2.groups参数添加参数校验分组
例:groups={add.class,edit.class}
3.payload参数定义有效载荷
4.format参数定义日期校验的格式
参数默认格式为"yyyy-MM-dd HH:mm:ss"
例:
- format=“yyyy/mm/dd HH:mm:ss”
- format=“yyyy-mm-dd”
- format=“HH-mm-ss”
5.required参数设置该字段是否必填
参数类型为boolean,默认为true(必填)。
示例
@ChineseDescription("创建时间")@DateValue(message = "正确格式应为yyyy/mm/dd",groups = {add.class,edit.class}, //添加和删除时进行校验的分组format = "yyyy/mm/dd",required = true)private String createTime; //传入参数为字符串
当传入createTime="20211212"时,提示错误信息
{"success": false,"code": "A1506","message": "参数校验失败,请检查参数的传值是否正确,具体信息:正确格式应为yyyy/mm/dd","data": null,"exceptionClazz": null,"exceptionTip": null,"exceptionPlace": null
}
值得一提的是,如果只定义了日期的格式,当传入字符串包含时间格式时,按照默认的时间格式进行校验;
而当只定义了时间的格式,传入日期格式将返回错误信息。
二、删除标识校验注释@FlagValue
@FlagValue(message = "", //返回信息groups = {}, //校验分组payload = {}, //有效载荷required = true //是否必填 true(必填) false(选填))
1.message
默认为"不正确的flag标识,请传递Y或者N"
···其余同上···
示例
/*删除标志*/@ChineseDescription("删除标志")@FlagValue(groups = {delete.class}, //删除时进行校验required = true)private String delFlag;
当传入delFlag="X"时,提示错误信息
{"success": false,"code": "A1506","message": "参数校验失败,请检查参数的传值是否正确,具体信息:不正确的flag标识,请传递Y或者N","data": null,"exceptionClazz": null,"exceptionTip": null,"exceptionPlace": null
}
三、手机号码格式校验@PhoneValue
该校验注释自动过滤,过滤条件为11位字符串及属于数字
@PhoneValue(message = "", //返回信息groups = {}, //校验分组payload = {}, //有效载荷required = true //是否必填 true(必填) false(选填))
1.message参数自定义返回信息
message参数设置返回错误信息,默认为"手机号码格式不正确"
···其余同上···
示例
/*手机号*/@ChineseDescription("手机号码")@PhoneValue(groups = {add.class,edit.class} //添加和修改时进行校验)private String phoneNumber;
当传入大于或小于11位字符串时,如phoneNumber=“123456789abc”,提示错误信息
{"success": false,"code": "A1506","message": "参数校验失败,请检查参数的传值是否正确,具体信息:手机号码格式不正确","data": null,"exceptionClazz": null,"exceptionTip": null,"exceptionPlace": null
}
当传入11位字符串时,如phoneNumber=“123456789abc”,则请求成功;但该校验注释自动剔除除数字以外的字符,所以存入数据库内数据为
四、状态标识校验注释@StatusValue
@StatusValue(message = "", //返回信息groups = {}, //校验分组payload = {}, //有效载荷required = false //是否必填 true(必填) false(选填))
1.message参数自定义返回信息
message参数设置返回错误信息,默认为"不正确的状态标识"
···其余同上···
示例
@StatusValue(groups = {add.class,edit.class})private Integer status;
默认状态标识为1和2,当传入status=0时,提示错误信息
{"success": false,"code": "A1506","message": "参数校验失败,请检查参数的传值是否正确,具体信息:不正确的状态标识","data": null,"exceptionClazz": null,"exceptionTip": null,"exceptionPlace": null
}
五、字段唯一校验注释@TableUniqueValue
@TableUniqueValue(message = "名称存在重复", //返回信息groups = {add.class,edit.class}, //校验分组payload= {} //有效载荷tableName = "", //表名称columnName = "", //列名称idFieldName = "", //数据库主键id的字段名excludeLogicDeleteItems = true //逻辑删除校验 默认为false(关闭)logicDeleteFieldName ="", //逻辑删除的字段名称logicDeleteValue = "" //默认逻辑删除的值)
1.message参数自定义返回信息
message参数设置返回错误信息,默认为"库中存在重复编码,请更换该编码值"
2.tableName参数设置需要唯一字段的表名称
例:tableName=“t_student”
3.columnName参数设置需要唯一字段名
例:columnName=“name”
4.idFieldName参数设置数据库主键ID的字段名
例:idFieldName=“student_id”
5.excludeLogicDeleteItems参数设置是否开启逻辑删除校验
参数类型为boolean,默认关闭(false)
6.logicDeleteFieldName参数设置逻辑删除的字段名称
参数默认为String DEFAULT_LOGIC_DELETE_FIELD_NAME = “del_flag”
7.logicDeleteValue参数设置默认逻辑删除的值
参数默认为String DEFAULT_LOGIC_DELETE_FIELD_VALUE = “Y”
示例
@NotBlank(message = "板块名称不能为空",groups = {add.class,edit.class})@ChineseDescription("板块名称")@TableUniqueValue(message = "板块名称重复",groups = {add.class,edit.class},tableName = "t_plate_type",columnName = "plate_type_name",idFieldName = "plate_type_id",excludeLogicDeleteItems = true //这里由于笔者程序所设置删除标志和值与默认字段名称一致所以不必设置其他参数)private String plateTypeName;
当传入名称已存在时,返回错误信息
{"success": false,"code": "A1506","message": "参数校验失败,请检查参数的传值是否正确,具体信息:板块名称重复","data": null,"exceptionClazz": null,"exceptionTip": null,"exceptionPlace": null
}
当名称不重复时,则请求成功
{"success": true,"code": "00000","message": "请求成功","data": null
}
validator校验注解相关推荐
- validator自定义校验注解及使用
validator自定义校验注解及使用 官方文档:https://docs.jboss.org/hibernate/validator/8.0/reference/en-US/html_single/ ...
- SpringMVC集成Hibernate Validator进行注解式的参数校验——让代码更少、更加专注于业务逻辑
SpringMVC集成Hibernate Validator进行注解式的参数校验 --让代码更少.更加专注于业务逻辑 1 问题背景: 参数验证是一个常见的问题,例如验证用户输入的密码是否为空.邮箱是否 ...
- springboot使用hibernate validator校验
回到顶部 一.参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗 ...
- SpringBoot中使用Hibernate Validator校验工具类
1.说明 在Spring Boot已经集成Hibernate Validator校验器的情况下, 对于配置了校验注解的请求参数, 框架会自动校验其参数, 但是如果想手动校验一个加了注解的普通对象, 比 ...
- 自定义Hibernate Validator规则注解
自定义规则注解 除了使用已定义的校验规则外,我们也可以根据自定的业务自定义校验规则,接下来我们介绍一下如何自定义 Hibernate Validator校验规则. 创建自定义规则无参数注解介绍 声明自 ...
- validation 分组校验注解大全及使用详解
JSR303(Bean的校验框架)的注解,在 controller 的方法中验证时(运行时校验属性)使用,如果不合法(校验失败),注解中的提示信息会保存在 result 中. JSR提供的校验注解: ...
- 校验注解:@Valid 和 @Validated区别与用法(附详细案例)
一.案例对象 本文章会以案例为主,讲解@Valid 和 @Validated这两个注解的区别与用法. 1.首先,创建一个学生对象,如下: import lombok.Data;/*** 学生对象*/ ...
- springboot中hibernate validator校验模式,分组校验,自定义校验
检验模式 上面例子中一次性返回了所有验证不通过的集合,通常按顺序验证到第一个字段不符合验证要求时,就可以直接拒绝请求了.Hibernate Validator有以下两种验证模式: 普通模式(默认是这个 ...
- springboot 配置 Validator 校验框架国际化 支持快速返回
1.国际化资源 使用IDEA创建资源组 2.编写配置 application.yml 增加国际化目录配置 增加国际化配置类 从请求头获取多语言关键字 /*** 国际化配置** @author Lion ...
最新文章
- 微软todo使用教程_Todo教程可能很有趣-但是,这是从头开始构建自己的项目的方法...
- BCH区块链上的预言机项目——Oracles
- Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
- 如果沟通有范式,它会是怎么样子?
- 中国豪华的政府大楼VS破学校
- 他曾经负债2.5亿,如今身价超过500亿
- 单线程多线程_面试系列 redis为什么快amp;单线程amp;多线程
- HTML 表单和输入
- LESS vs SASS?选择哪种CSS样式编程语言?
- android activity焦点,android启动activity文本框不获得焦点
- 大气压力换算公式_气压单位换算表(压力单位换算公式大全)
- pcsx2运行ps1_PS2模拟器PSX2设置及使用教程.doc
- pyodbc mysql_Robot Framework 通过pyodbc连接Mysql
- 抖音上显示内部服务器错误,抖音被限流了怎么办?这里分析了原因和解决方法...
- 苹果cms tv.html,苹果cms添加TV电视直播教程
- TODO:这是一个我的自媒体
- 复利思维,您做到了吗?
- 朽木第一至三季/全集Deadwood迅雷下载
- linux运行openfoam,OpenFOAM应用的准备工作
- ios9遇到 App Transport Security has blocked a cleartext HTTP(http://) resource load 错误
热门文章
- HTML5 的Input 类型
- python的openpyxl模块合并单元格,浅谈openpyxl库,遇到批量合并单元格的问题
- 聊聊线性代数(15)SVD的应用--3
- 【附源码】计算机毕业设计java在线学习系统的设计与开发设计与实现
- 临时或永久修改cgroup和Cgroup 入门教程:cpuset
- 计算机如何取消左缩进,Word中怎么去掉表格的缩进
- 分支定界法 python_分支定界(Branchbound)算法
- 微信浏览器禁止下载APK文件 微信扫描二维码 下载app的方法
- 正则表达式之密码验证
- linux postfix 虚拟,postfix虚拟别名域的配置