spring-boot-validator参数校验系列(2)--------分组校验-阿里云开发者社区

开发者社区> SevenSun> 正文

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)创建分组校验标记接口

import javax.validation.groups.Default;

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

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

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

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

重要的事情说三遍!!!


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

@Data//lombok注解
public class MyPerson {

    @NotBlank(message = "id不可为空!",groups = {Update.class})
    private String id;
    
    @Size(max = 8,min = 1, message = "姓名字符超出范围!")
    private String name;
}

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

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

PostMan访问

image.png

后台输出结构

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
7369 0
springMVC对jsp页面的数据进行校验
一. 使用注解校验 a) 引入校验依赖包 javax.validation validation-api 2.0.0.Final org.
1313 0
Spring Boot参数校验以及分组校验的使用
做web开发基本上每个接口都要对参数进行校验,如果参数比较少,还比较容易处理,一但参数比较多了的话代码中就会出现大量的if-else语句。虽然这种方式简单直接,但会大大降低开发效率和代码可读性。所以我们可以使用validator组件来代替我们进行不必要的coding操作。本文将基于validator的介绍资料,同时结合作者自己在项目中的实际使用经验进行了总结。
4036 0
SpringBoot 如何进行参数校验,老鸟们都这么玩的!
SpringBoot 如何进行参数校验,老鸟们都这么玩的!
1106 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
9071 0
spring mvc各种参数在jsp和action之间的传递
SpringMVC的各种参数绑定方式   1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <
1006 0
Spring MVC 使用POJO对象绑定请求参数值
index.jsp前台页面加上这些,把值输入之后,通过post提交到后台。 <form action="springmvc/testPOJO" method="post"> username: <input type="text" name="username"/> <br/> passwo
1623 0
SpringMVC自定义日期格式进行参数绑定
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
556 0
Spring MVC url提交参数和获取参数
普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 /**      *...
573 0
+关注
SevenSun
技术创造美好生活!
23
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载