JavaWeb项目参数合法性校验

目前Web项目校验参数合法性时,经常用到@Validated@Valid等,下面总结下各种情况下的使用。

情景1

@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableColumnBO {@NotBlank(message = "表名不能为空")private String tableName;@NotBlank(message = "字段名不能为空")private String columnName;}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ColumnPermissionSaveDTO {@NotNull(message = "角色Id列表不能为空")@Size(min = 1, message = "至少选择一个角色")private List<Long> roleIds;@NotNull(message = "表字段信息不能为空")@Size(min = 1, message = "至少选择一个字段")@Validprivate List<TableColumnBO> tableColumnBOS;
}
@PostMapping("XXX")
public Result<String> saveColumnPermission(@RequestBody @Validated ColumnPermissionSaveDTO columnPermissionSaveDTO) {... ...
}

1、在controller层接口参数加@Validated,使ColumnPermissionSaveDTO中配置的校验规则生效。例如上面的@NotNull@Size

2、ColumnPermissionSaveDTO类的tableColumnBOS属性是List<自定义类>类型,需要在ColumnPermissionSaveDTO类的tableColumnBOS属性上增加@Valid注解,使TableColumnBO类中配置的校验规则生效。如果不加,则TableColumnBO类中配置的校验不会生效。

情景2

@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableColumnBO {@NotBlank(message = "表名不能为空")private String tableName;@NotBlank(message = "字段名不能为空")private String columnName;}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ColumnPermissionSaveDTO {@NotNull(message = "角色Id列表不能为空")@Size(min = 1, message = "至少选择一个角色")private List<Long> roleIds;@NotNull(message = "表字段信息不能为空")@Validprivate TableColumnBO tableColumnBO;
}
@PostMapping("XXX")
public Result<String> saveColumnPermission(@RequestBody @Validated ColumnPermissionSaveDTO columnPermissionSaveDTO) {... ...
}

1、在controller层接口参数加@Validated,使ColumnPermissionSaveDTO中配置的校验规则生效。例如上面的@NotNull@Size

2、ColumnPermissionSaveDTO类的tableColumnBO属性是自定义类类型,需要在ColumnPermissionSaveDTO类的tableColumnBO属性上增加@Valid注解,使TableColumnBO类中配置的校验规则生效。如果不加,则TableColumnBO类中配置的校验不会生效。

Validated校验相关推荐

  1. 参数校验放在controller还是service_@Validated校验的实践

    spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理. 一.简单使用 1.Controller上开启验证 2.DTO上申明被验证的字段 a. ...

  2. 后端validated校验

    想要使用validated需要引入Jar包,有两个方式,选择一种即可: <dependency>     <groupId>org.springframework.boot&l ...

  3. SpringMVC的@Validated校验注解使用方法

    一.SpringMVC校验注解@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 it ...

  4. @Validated校验常用

    SpringBoot pom.xml添加依赖 <dependency><groupId>org.springframework.boot</groupId>< ...

  5. validated 验证数组_@Validated和@Valid的区别?校验级联属性(内部类)

    NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以 ...

  6. Springboot @Validated参数校验

    简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现.hibernate validation是对这个规范的实现,并增加了校验注解如@Em ...

  7. @Validated和@Valid校验参数

    @Validated和@Valid校验参数 参考: @Validated和@Valid校验参数.级联属性.List java valid payload_Spring Validation最佳实践及其 ...

  8. Spring Boot如何优雅的校验参数

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「乱敲代码」 做web开发有一点很烦人就 ...

  9. java护照号码校验_SpringBoot如何优雅的校验参数

    博客地址 :https://lqcoder.com 前言 做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的.如果参数比较少的话还是容易 ...

最新文章

  1. 学习Web前端需要避免哪些错误
  2. AQS基础——多图详解CLH锁的原理与实现
  3. Android爬坑之旅:软键盘挡住输入框问题的终极解决方式
  4. 如何从代码层面优化系统性能
  5. 兰蔻御用运维总结之一
  6. Flink 实战:如何解决应用中的技术难题?
  7. spring boot 分布式锁组件 spring-boot-klock-starter
  8. python对象使用
  9. minwindow java_java中setMinWindowLayout()是什么呀?
  10. springwebflux 页面_【SpringBoot WEB系列】WebFlux静态资源配置与访问
  11. opencv videocapture读取视频cap.isOpened 输出总是false
  12. 华中科大10年计算机考研复试机试
  13. Python花式编程案例集锦(9):sorted()函数中消失的cmp参数
  14. 牛逼!Intellij IDEA竟然有个功能可自动生成代码,你用过没?
  15. HmacSHA256算法实现消息认证
  16. 华三交换机ping大包命令_cmd如何ping大包
  17. 从delphi 10.3到delphi 10.4的改变实务
  18. 计算机应用技术专业的周志,计算机科学与技术专业实习周记
  19. Eclipse的Maven创建
  20. 今日头条街拍图片下载

热门文章

  1. 04环信聊天界面 - 发送图片消息和显示图片
  2. 打破经典计算模拟限制,研究实现54个量子比特QAOA模拟优化
  3. windows10的PHP环境变量
  4. 视觉成长之路Halcon——颜色检测:GMM分类器
  5. 手机上怎么记录恋爱天数?用便签记录情侣相恋天数
  6. wifi密码 如何获取自己的WiFi密码
  7. 后COVID开发人员面试的基本指南
  8. python高斯噪声怎么去除_高斯过程和高斯过程回归
  9. Office 365免费使用
  10. emqx接通mysql_EMQ X 认证鉴权(一)——基于 MySQL 的 MQTT 连接认证