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

作者:wfsm 时间:2021-07-31 17:43:50 

普通校验

导入依赖:

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

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

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

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

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

内容如下:


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

测试:

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

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

分组校验

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

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

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,校验
0
投稿

猜你喜欢

  • Java双冒号(::)运算符使用详解

    2022-03-31 11:18:17
  • Java对象级别与类级别的同步锁synchronized语法示例

    2023-06-25 09:11:22
  • 深入浅出讲解Java集合之Map接口

    2023-10-14 20:52:46
  • Java利用Selenium操作浏览器的示例详解

    2022-06-17 17:34:20
  • java实现连连看游戏课程设计

    2023-10-30 13:18:37
  • Java图片裁剪和生成缩略图的实例方法

    2023-11-09 00:01:50
  • 关于@Scheduled不执行的原因分析

    2021-06-27 17:13:20
  • 详解Android Flutter中SliverAppBar的使用教程

    2023-06-23 12:11:27
  • Java Servlet3.0异步处理问题

    2023-08-12 00:52:05
  • C#复制数组的两种方式及效率比较

    2023-07-15 04:19:12
  • 浅试仿 mapstruct实现微服务编排框架详解

    2022-07-12 13:20:44
  • IDEA导入外部项目报Error:java: 无效的目标发行版: 11的解决方法

    2021-08-25 03:02:27
  • Java读取、写入文件如何解决乱码问题

    2023-08-26 11:16:00
  • Java遍历json字符串取值的实例

    2023-09-02 17:03:17
  • SpringBoot基于Sentinel在服务上实现接口限流

    2023-11-27 17:19:25
  • Java中的Unsafe在安全领域的使用总结和复现(实例详解)

    2023-07-30 10:58:42
  • Flutter Widget开发之Focus组件图文详解

    2023-06-21 03:47:41
  • Mybatis工具类JdbcTypeInterceptor运行时自动添加jdbcType属性

    2023-08-24 03:49:59
  • Java类中字段可以不赋予初始值的原因分析

    2023-01-05 15:55:49
  • Java移动文件夹及其所有子文件与子文件夹

    2023-08-01 09:53:38
  • asp之家 软件编程 m.aspxhome.com