spring-boot-validator参数校验系列(2)--------分组校验

简介: 根据业务类型实现分组校验

前言

目录

spring-boot-validator参数校验系列(1)--------基本参数校验

spring-boot-validator参数校验系列(2)--------分组校验

spring-boot-validator参数校验系列(3)--------自定义校验注解

spring-boot-validator参数校验系列(4)--------自定义参数校验异常

一、为什么要分组校验?

因为对同一个实体有不同的业务操作,比如添加用户时,用户名不可为空,更新用户信息时,id不可为空。此时采取统一交验,则会出现添加时,必须填写id。

二、如何实现?

(1)首先完成基本校验spring-boot-validator参数校验系列(1)--------基本参数校验


     (2)创建分组校验标记接口

importjavax.validation.groups.Default;
/*** @Description : 校验注解标记接口,更新类型。注意:* 若不实现Default接口,那么默认的没有添加分组的注解则不会进行校验也就是如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效*/publicinterfaceUpdateextendsDefault {
}

如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!

如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!

如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!

重要的事情说三遍!!!


 (3)校验注解中groups属性添加分组标记接口

@Data//lombok注解publicclassMyPerson {
@NotBlank(message="id不可为空!",groups= {Update.class})
privateStringid;
@Size(max=8,min=1, message="姓名字符超出范围!")
privateStringname;
}

(3)Controller中的@Validated 注解加入标记接口(首尾呼应写作方法)。

这里以更新为例,因为name没有进行Update.class分组,所以不填(即:null)不会校验

PostMan访问

image.png

后台输出结构

image.png

目录
相关文章
|
20天前
|
JSON 前端开发 Java
Spring MVC——获取参数和响应
本文介绍了如何在Spring框架中通过不同的注解和方法获取URL参数、上传文件、处理cookie和session、以及响应不同类型的数据。具体内容包括使用`@PathVariable`获取URL中的参数,使用`MultipartFile`上传文件,通过`HttpServletRequest`和`@CookieValue`获取cookie,通过`HttpSession`和`@SessionAttribute`获取session,以及如何返回静态页面、HTML代码片段、JSON数据,并设置HTTP状态码和响应头。
40 1
Spring MVC——获取参数和响应
|
30天前
|
前端开发 Java Spring
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
95 2
|
2月前
|
Java Spring
spring boot 启动项目参数的设定
spring boot 启动项目参数的设定
|
3月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
3月前
|
Java API 数据格式
Spring Boot API参数读取秘籍大公开!6大神器助你秒变参数处理大师,让你的代码飞起来!
【8月更文挑战第4天】Spring Boot凭借其便捷的开发和配置特性,成为构建微服务的热门选择。高效处理HTTP请求参数至关重要。本文介绍六种核心方法:查询参数利用`@RequestParam`;路径变量采用`@PathVariable`;请求体通过`@RequestBody`自动绑定;表单数据借助`@ModelAttribute`或`@RequestParam`;请求头使用`@RequestHeader`;Cookie则依靠`@CookieValue`。每种方法针对不同场景,灵活运用可提升应用性能与用户体验。
64 9
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
118 3
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
166 2
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
36 0
|
5月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
53 2
|
5月前
|
XML Java 数据库
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
Spring5系列学习文章分享---第五篇(事务概念+特性+案例+注解声明式事务管理+参数详解 )
29 0