@Validated+@RequestBody校验List实践
更新时间:2026年06月27日 09:59:36 作者:whynotxzh
这篇文章主要介绍了@Validated+@RequestBody校验List实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
问题背景
@Validated 可以检验单个对象,但是如果需要校验@RequestBody List类型的参数时该注解不生效,可以使用@Validated和@Valid配合使用即可达到校验集合的效果
处理方案
- 在控制器上加@Validated
- 在控制器方法参数中的List 加@Valid注解即可生效
- 在具体实体类型里面添加校验注解 如
@NotEmpty(message = "等级id不能为空")
异常处理
/**
* 校验list参数 使用@Validated 和 @Valid配合使用 该拦截器处理@Vaild异常
* 我们注解中的message可以从violation中取出
* @param ex
* @return
*/
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(ConstraintViolationException.class)
public ApiResult processException(ConstraintViolationException ex){
log.warn("methodArgumentNotValidException.msg = {}", ex.getMessage());
Set<ConstraintViolation<?>> violations = ex.getConstraintViolations();
for (ConstraintViolation<?> violation : violations) {
return ApiResult.retDefException(violation.getMessage());
}
return new ApiResult();
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决JDK异常处理No appropriate protocol问题
这篇文章主要介绍了解决JDK异常处理No appropriate protocol问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-06-06
Java报错:org.springframework.beans.factory.BeanCreationExcepti
本文解析Spring框架中BeanCreationException的常见原因,如属性类型不匹配、依赖缺失、类加载错误,并提供修正配置、调试日志、清理项目等解决方法,帮助开发者快速定位和修复该异常问题,感兴趣的朋友跟随小编一起看看吧2025-08-08
springBoot中myBatisPlus的使用步骤及示例代码
MyBatis-Plus 是一个 MyBatis 的增强工具,在 Spring Boot 项目里使用它能极大提升开发效率,下面为你详细介绍在 Spring Boot 中使用 MyBatis-Plus 的步骤以及示例代码,感兴趣的朋友一起看看吧2025-03-03
Spring Cloud Ribbon实现客户端负载均衡的方法
本篇文章主要介绍了Spring Cloud Ribbon实现客户端负载均衡的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-05-05


最新评论