springboot中validator数据校验功能的实现
作者:wfsm 时间:2021-07-31 17:43:50
普通校验
导入依赖:
默认的报错:没有提示具体的属性
设置自己的错误信息提示:创建 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
标签:springboot,validator,校验
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java双冒号(::)运算符使用详解
2022-03-31 11:18:17
![](https://img.aspxhome.com/file/2023/2/65612_0s.png)
Java对象级别与类级别的同步锁synchronized语法示例
2023-06-25 09:11:22
![](https://img.aspxhome.com/file/2023/7/61867_0s.png)
深入浅出讲解Java集合之Map接口
2023-10-14 20:52:46
![](https://img.aspxhome.com/file/2023/6/62816_0s.png)
Java利用Selenium操作浏览器的示例详解
2022-06-17 17:34:20
![](https://img.aspxhome.com/file/2023/2/66482_0s.jpg)
java实现连连看游戏课程设计
2023-10-30 13:18:37
Java图片裁剪和生成缩略图的实例方法
2023-11-09 00:01:50
![](https://img.aspxhome.com/file/2023/2/59342_0s.png)
关于@Scheduled不执行的原因分析
2021-06-27 17:13:20
![](https://img.aspxhome.com/file/2023/9/67619_0s.png)
详解Android Flutter中SliverAppBar的使用教程
2023-06-23 12:11:27
![](https://img.aspxhome.com/file/2023/7/97867_0s.jpg)
Java Servlet3.0异步处理问题
2023-08-12 00:52:05
C#复制数组的两种方式及效率比较
2023-07-15 04:19:12
![](https://img.aspxhome.com/file/2023/3/66133_0s.png)
浅试仿 mapstruct实现微服务编排框架详解
2022-07-12 13:20:44
![](https://img.aspxhome.com/file/2023/0/63420_0s.png)
IDEA导入外部项目报Error:java: 无效的目标发行版: 11的解决方法
2021-08-25 03:02:27
![](https://img.aspxhome.com/file/2023/4/62704_0s.png)
Java读取、写入文件如何解决乱码问题
2023-08-26 11:16:00
Java遍历json字符串取值的实例
2023-09-02 17:03:17
SpringBoot基于Sentinel在服务上实现接口限流
2023-11-27 17:19:25
![](https://img.aspxhome.com/file/2023/4/59574_0s.jpg)
Java中的Unsafe在安全领域的使用总结和复现(实例详解)
2023-07-30 10:58:42
![](https://img.aspxhome.com/file/2023/6/64896_0s.png)
Flutter Widget开发之Focus组件图文详解
2023-06-21 03:47:41
![](https://img.aspxhome.com/file/2023/7/101827_0s.jpg)
Mybatis工具类JdbcTypeInterceptor运行时自动添加jdbcType属性
2023-08-24 03:49:59
Java类中字段可以不赋予初始值的原因分析
2023-01-05 15:55:49
Java移动文件夹及其所有子文件与子文件夹
2023-08-01 09:53:38