springboot中validator数据校验功能的实现
作者:wfsm 发布时间:2021-07-31 17:43:50
标签:springboot,validator,校验
普通校验
导入依赖:
默认的报错:没有提示具体的属性
设置自己的错误信息提示:创建 ValidationMessages.properties
内容如下:
user.id.notnull = id 不能为空
user.username.size = username 长度为5-10
user.age.min = age 年龄最小为1
user.age.max = age 年龄最大为100
user.email.pattern= email 格式不正确
实体类注解上设置message
属性,,使用{}
引入 VallidationMessages.properties
内容:
public class User {
@NotNull(message = "{user.id.notnull}")
private Integer id;
@Size(min = 5,max = 10,message = "{user.username.size}") // @Size 字符串长度
private String username;
@DecimalMin(value = "1",message = "{user.age.min}") // @DecimalMin 数值最小
@DecimalMax(value = "100",message = "{user.age.max}")
private Integer age;
@Email(message = "{user.email.pattern}")
private String email;
}
测试:
自定义错误信息,显示指定属性错误
分组校验
不同的请求,实现不同的校验。。
创建两个空接口,标识作用:
ValidationGroup01 ValidationGroup02
修改User:
public class User {
@NotNull(message = "{user.id.notnull}",groups = {ValidationGroup01.class,ValidationGroup02.class})
private Integer id;
@Size(min = 5,max = 10,message = "{user.username.size}",groups = {ValidationGroup01.class}) // @Size 字符串长度
private String username;
@DecimalMin(value = "1",message = "{user.age.min}") // @DecimalMin 数值最小
@DecimalMax(value = "100",message = "{user.age.max}")
private Integer age;
@Email(message = "{user.email.pattern}",groups = {ValidationGroup01.class})
private String email;
}
controller中表明你要使用哪个分组校验:
public void addUser(@Validated(value = ValidationGroup01.class) User user, BindingResult result){
...
}
只会校验user中groups标注了ValidationGroup01.class 的字段。。
来源:https://blog.csdn.net/qq_36022463/article/details/120733871
0
投稿
猜你喜欢
- 目录I. 项目环境1. 项目依赖II. 缓存注解介绍1. @Cacheable2. @CachePut3. @CacheEvict4. @C
- 概况本文主要给大家介绍了通过JDK源码学习InputStream的相关内容,JDK 给我们提供了很多实用的输入流 xxxInputStrea
- MD5加密简介哈希算法又称散列算法,是将任何数据转换成固定长度的算法的统称。 从本质上讲,MD5也是一种哈希算法,其输出是生成12
- 在第一次启动项目的时候,由于使用了RabbitMQ的默认guest账号,怎么也登不进去,后来还是在Admin重新创建了一个其他的账号,然后开
- 1. 前言Spring最重要的一个概念当属Bean了,我们写的Controller、Service、Dao凡是加了对应注解交给Spring管
- 项目场景:适用于接口数据敏感信息,比如 明文传输姓名、居住地址、手机号等信息,如果存在明文传输敏感数据问题、及数据泄漏风险,则可使用此方法加
- 1.由json字符串转换成Map对象如json字符串:{"contend":[{"bid":&quo
- 总之是用jdbc 的游标移动package com.sp.person.sql.util; import java.sql.Connecti
- 一、加密方案介绍对接口的加密解密操作主要有下面两种方式:自定义消息转换器优势:仅需实现接口,配置简单。劣势:仅能对同一类型的MediaTyp
- 已经有很多关于 Flutter WebView 的文章了,为什么还要写一篇。两个原因:Flutter WebView 是 Flutter 开
- 前言:最近终于用上了高性能的测试机(54C96G * 3),相较之前的单机性能提升了三倍,数量提升了三倍,更关键的宽带提单机升了30倍不止,
- 一、什么是冒泡排序冒泡排序的英文是bubble sort,它是一种基础的交换排序。说到冒泡是不是就想起了快乐肥宅水呢?汽水中有许多小小的水泡
- 本文实例讲述了C#判断一天、一年已经过了百分之多少的方法。分享给大家供大家参考。具体如下:这里写了四个函数,分别是1.判断当前时间过了今天的
- 简介备忘录设计模式(Memento Design Pattern)也叫作快照(Snapshot)模式,主要用于实现防丢失、撤销、恢复等功能。
- 本次主要分享的是3个免费的二维码接口的对接代码和测试得出的注意点及区别,有更好处理方式多多交流,相互促进进步;最近在学习JavsScript
- 为什么要用Flyway在日常开发中,我们经常会遇到下面的问题:自己写的SQL忘了在所有环境执行;别人写的SQL我们不能确定是否都在所有环境执
- 利用反射获取对象的所有属性及对应的值1、获取属性名数组private static String[] getFiledName(Object
- 登录接口实现public User queryUser(String UserName, String Password,HttpServl
- 目录前言反射基础数据准备基于反射创建对象获取反射中的对象获取类中属性获取类中的构造方法获取类中方法结语前言大家好,瑞雪后的第一天,每个周一的
- 1、代码设计的代理模式代理模式属于构建型模式(Proxy),提供了对目标对象的一种访问方式; 即通过代理对象访问目标对象。这样做的好处是:可