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数据校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Java实现分布式事务的三种方案

    浅谈Java实现分布式事务的三种方案

    现在互联网下,分布式和微服务横行,难免会遇到分布式下的事务问题,当然微服务下可能没有分布式事务,但是很多场景是需要分布式事务的。下面就来介绍下什么是分布式事务和分布式事务的解决方案
    2021-06-06
  • EditPlus运行java时从键盘输入数据的操作方法

    EditPlus运行java时从键盘输入数据的操作方法

    这篇文章主要介绍了EditPlus运行java时从键盘输入数据的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • RocketMQ发送事务消息详解

    RocketMQ发送事务消息详解

    这篇文章主要介绍了RocketMQ发送事务消息详解,RocketMQ分布式事务消息不仅可以实现应用之间的解耦,又能保证数据的最终一致性,传统的大事务可以被拆分为小事务,不仅能提升效率,还不会因为某一个关联应用的不可用导致整体回滚,需要的朋友可以参考下
    2023-09-09
  • SpringMVC @RequestBody Date类型的Json转换方式

    SpringMVC @RequestBody Date类型的Json转换方式

    这篇文章主要介绍了SpringMVC @RequestBody Date类型的Json转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • spring boot自定义log4j2日志文件的实例讲解

    spring boot自定义log4j2日志文件的实例讲解

    下面小编就为大家分享一篇spring boot自定义log4j2日志文件的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 详解Java数据结构之平衡二叉树

    详解Java数据结构之平衡二叉树

    平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。本文将详解介绍一下平衡二叉树的原理与实现,需要的可以参考一下
    2022-02-02
  • Java常用类String的面试题汇总(java面试题)

    Java常用类String的面试题汇总(java面试题)

    这篇文章主要介绍了Java常用类String的面试题汇总,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-06-06
  • 深入理解 Java、Kotlin、Go 的线程和协程

    深入理解 Java、Kotlin、Go 的线程和协程

    这篇文章主要介绍了深入理解 Java、Kotlin、Go 的线程和协程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 浅谈Spring Data JPA与MyBatisPlus的比较

    浅谈Spring Data JPA与MyBatisPlus的比较

    本文主要介绍了浅谈Spring Data JPA 与 MyBatisPlus的比较
    2024-08-08
  • java获得mysql和oracle链接的类

    java获得mysql和oracle链接的类

    这篇文章主要介绍了java获得mysql和oracle链接的类,可实现基于jdbc的mysql与oracle数据库连接,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论