当前位置: 首页 > news >正文

Spring参数注解,支持数组入参(List)校验

Spring参数注解,支持数组入参(List)校验


1、controller类增加@Validated注解,对应的数组参数增加@Valid注解。

@Validated
@RestController
@RequestMapping("/parent")
public class ParentController {private FatherRepository fatherRepository;/*** DI*/public ParentController(FatherRepository fatherRepository) {this.fatherRepository = fatherRepository;}@PostMapping("/test")public void test(@RequestBody @Valid List<Father> fathers) {}
}

2、对返回的校验信息异常进行全局捕获,封装后返回。

@RestControllerAdvice
@Component
public class ControllerExceptionHandler {/*** handle controller methods parameter validation exceptions** @param exception ex* @return wrapped result*/@ExceptionHandler@ResponseBody@ResponseStatus(HttpStatus.OK)public DataContainer handle(ConstraintViolationException exception) {Set<ConstraintViolation<?>> violations = exception.getConstraintViolations();StringBuilder builder = new StringBuilder();for (ConstraintViolation<?> violation : violations) {builder.append(violation.getMessage());break;}DataContainer container = new DataContainer(CommonCode.PARAMETER_ERROR_CODE, builder.toString());return container;}
}

参考 https://stackoverflow.com/questions/28150405/validation-of-a-list-of-objects-in-spring

http://www.lryc.cn/news/136199.html

相关文章:

  • 如何使用ArcGIS进行可视化分析
  • 计算机竞赛 基于LSTM的天气预测 - 时间序列预测
  • uniapp 回退到指定页面 保存页面状态
  • ansible(1)-- 部署ansible连接被控端
  • Log4j反序列化命令执行漏洞(CVE-2017-5645)Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)
  • echarts 之 科技感进度条
  • 基于gin关于多级菜单的处理
  • Oracle/PL/SQL奇技淫巧之Lable标签与循环控制
  • Docker基础操作
  • AMBA总线协议(8)——AHB(六):分割传输
  • 时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化
  • 【makefile】自动化变量的简述及实例
  • IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/
  • C#,《小白学程序》第一课:初识程序
  • LeetCode--HOT100题(38)
  • C语言:指针(超深度讲解)
  • Docker详解
  • 软件开发方法:复用与扩展
  • C++新经典09--函数新特性、inline内联函数与const详解
  • C++中机器人应用程序的行为树(ROS2)
  • 像Vuex一样使用redux
  • 关于模板的大致认识【C++】
  • C#如何遍历类的属性,并获取描述/注释
  • ffmpeg 子进程从内存读取文件、提取图片到内存
  • Springboot+Netty+WebSocket搭建简单的消息通知
  • @RefreshScope静态变量注入
  • 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测
  • SAP 凭证项目文本 增强 demo2
  • 一套基于C#语言开发的LIMS实验室信息管理系统源码
  • kubesphere部署rocketmq5.x,并对外暴露端口