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


猜你喜欢
- 活锁与死锁活锁活锁同样会发生在多个相互协作的线程间,当他们为了彼此间的响应而相互礼让,使得没有一个线程能够继续前进,那么就发生了活锁。同死锁
- LRU缓存替换策略缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。
- 1.使用WIFI首先设置用户权限<uses-permission android:name="android.permiss
- Q 1: 指定 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 好像并不能隐藏导航栏和状态栏?A: 您需要告诉系
- 导入表格的主要思路就是:首先从前端页面上传文件,这里先区分一下Multipartfile和File,前者代表的是HTML中form data
- 介绍Java中的享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享尽可能多的对象来减少内存占用和提高性能.Ja
- Spring Cache设置缓存条件原理从Spring3.1开始,Spring框架提供了对Cache的支持,提供了一个对缓存使用的抽象,通过
- 前言Lifecycle是Jetpack架构组件中用来感知生命周期的组件,使用Lifecycles可以帮助我们写出和生命周期相关更简洁更易维护
- 本文实例讲述了C#异步调用的方法。分享给大家供大家参考。具体如下:using System;using System.Collections
- Nacos 的部署,我使用的时docker 部署(单机模式 Mysql),官网文档:https://nacos.io/zh-cn/docs/
- 服务器端我们用软件模拟,是一个很小巧的软件,下载软件NetAssist:http://xiazai.jb51.net/201403/tool
- DATAXDataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postg
- 求直方图中的最大矩形面积:例如给定直方图{2,3,1,2,4,2}则直方图中最大矩形面积为x=(3,6),|x|=3,y=2,max面积=6
- 一、Thread 类了解如何使用Thread 类实现多线程之后,继续学习Thread 类实现多线程之后的相关功能及方法。1、操作线程名称的方
- 时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到
- Mybatis与JPA的优缺点JPA java持久层API可理解为一种规范,Hibernate就是其具体一个实现。它的实现应用是Spring
- 一、Filter(过滤器)Filter接口定义在javax.servlet包中,是Servlet规范定义的,作用于Request/Respo
- 由于我使用的是properties类型的配置文件,在对druid的参数进行配置的时候,多加了druid,也就是spring.datasour
- Android 自动获取验证码的两种方式分别是BroadcastReceiver及ContentObserver,两种方式都需要进行注册、取
- 目的了解ReentrantLock获取锁、释放锁的流程代码package com.company.aqs;import java.util.