springboot中validator数据校验功能的实现

 更新时间:2021年10月13日 17:05:07   作者:wfsm  
这篇文章主要介绍了springboot中validator数据校验功能,校验分为普通校验和分组校验,每种校验方式通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

普通校验

导入依赖:

image-20211012213308369

默认的报错:没有提示具体的属性

image-20211012220755725

设置自己的错误信息提示:创建 ValidationMessages.properties

image-20211012215710089

内容如下:

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;
}

测试:

image-20211012221805063

自定义错误信息,显示指定属性错误

分组校验

不同的请求,实现不同的校验。。

创建两个空接口,标识作用:

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 的字段。。

到此这篇关于springboot中validator数据校验的文章就介绍到这了,更多相关springboot validator数据校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea在运行期间,实现让修改的页面实时生效

    idea在运行期间,实现让修改的页面实时生效

    这篇文章主要介绍了idea在运行期间,实现让修改的页面实时生效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • java联调生成测试数据工具类方式

    java联调生成测试数据工具类方式

    这篇文章主要介绍了java联调生成测试数据工具类方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java @Validated遇到的大坑与处理

    Java @Validated遇到的大坑与处理

    这篇文章主要介绍了Java @Validated遇到的大坑与处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理

    AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理

    这篇文章主要介绍了为大家AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Spring Boot常见外部配置文件方式详析

    Spring Boot常见外部配置文件方式详析

    这篇文章主要给大家介绍了关于Spring Boot常见外部配置文件方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • 浅谈Java转义符\\|

    浅谈Java转义符\\|

    java中\需要用\\来表示吧这个你应该知道,而split中传入的参数是什么呢 他并不是普通的字符串 你可以查一下api文档 它要求传入的是正则表达式 而正则表达式也需要这个\所以在这里有这个\\
    2015-06-06
  • Flutter瀑布流仿写原生的复用机制详解

    Flutter瀑布流仿写原生的复用机制详解

    这篇文章主要给大家介绍了关于Flutter瀑布流仿写原生的复用机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用flutter具有一定的参考学习价值,需要的朋友可以参考下
    2021-07-07
  • zookeeper实战之实现分布式锁的方法

    zookeeper实战之实现分布式锁的方法

    Zookeeper实现分布式锁比Redis简单,Zookeeper有一个特性,多个线程在Zookeeper里创建同一个节点时,只有一个线程执行成功,Zookeeper主要是利用临时有序节点这一特性实现分布式锁,感兴趣的朋友跟随小编一起学习吧
    2022-11-11
  • java使用poi在excel单元格添加超链接设置字体颜色的方法

    java使用poi在excel单元格添加超链接设置字体颜色的方法

    这篇文章主要介绍了java使用poi在excel单元格添加超链接,设置字体颜色,poi功能还是很强大的,基本能想到的功能都能通过poi实现,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • PrintStream和PrintWriter的区别简介

    PrintStream和PrintWriter的区别简介

    这篇文章主要介绍了PrintStream和PrintWriter的区别简介,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论