Validated参数校验
这里写自定义目录标题
- 标签含义
- Validated参数校验
- 全局捕获异常
- 实体类
- 错误信息处理类
标签含义
限制 | 说明 |
---|---|
@Null | 限制只能为null |
@NotNull | 限制必须不为null |
@AssertFalse | 限制必须为false |
@AssertTrue | 限制必须为true |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Future | 限制必须是一个将来的日期 |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Past | 限制必须是一个过去的日期 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间 |
@Past | 验证注解的元素值(日期类型)比当前时间早 |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
Validated参数校验
@PostMapping("/updateCart")public ApiResponse updateCart( @RequestBody @Validated CartRequestVO request, BindingResult result) {ValidationUtil.validationBodyException(result);return new ApiResponse (apiResponse .getErrcode(),apiResponse .getErrmsg());}
全局捕获异常
@Slf4j
@RestController
@ControllerAdvice
public class ExceptionAdviceConfiguration {@ExceptionHandler(BException.class)ApiResponse runtimeExceptionHandler(HttpServletRequest request, BException exception) {return ApiResponse(exception.getCode(), exception.getMessage());}}
实体类
@Data
@ToString
public class CartRequestVO {/*** 商品id*/@NotNull(message = "goodsId不能为空!")@Min(value = 1,message = "非法的goodsId!")private Integer goodsId;/*** 选择标记*/private Boolean selectedFlag;/*** 全选*/private Boolean selectAll;/*** 选择num*///private int selectedNum;/*** 类型*/@NotNull(message = "类型不能为空!")private Integer promType;/*** 购买数量**/@NotNull(message = "购买数量 不存在!")@Min(value = 1,message = "购买数量异常!")private Integer buyNum;
}
错误信息处理类
public class ValidationUtil {/*** 校验错误拦截处理** @param result 错误信息集合* @return 错误信息*/public static void validationBodyException(BindingResult result){if (result.hasErrors()) {List<FieldError> fieldErrors = result.getFieldErrors();if (fieldErrors != null && fieldErrors.size() > 0){StringBuilder sb = new StringBuilder();for (int i = 0; i < fieldErrors.size(); i++) {sb.append(fieldErrors.get(i).getField()).append(fieldErrors.get(i).getDefaultMessage()).append(";");}throw new BException(sb.toString());}}}
}
返回
{"statusCode": 28110101,"message": "buyNum购买数量异常!;goodsIdgoodsId不能为空!;","data": null,
}
Validated参数校验相关推荐
- Springboot @Validated参数校验
简单使用 Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现.hibernate validation是对这个规范的实现,并增加了校验注解如@Em ...
- spring validated 参数校验
maven: 必要jar <dependency><groupId>javax.validation</groupId><artifactId>vali ...
- @Validated参数校验——校验列表List
校验列表List 方法一: 2. 包装一层List 3. 自定义一层List 方法一: 在controller层加上@Validated注解 在方法参数使用@valid注解即可 参考 2. 包装一层L ...
- 参数校验放在controller还是service_@Validated校验的实践
spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理. 一.简单使用 1.Controller上开启验证 2.DTO上申明被验证的字段 a. ...
- Springboot 参数校验@Valid @Validated(最新最全)
Springboot 参数校验@Valid @Validated(最新最全) 提示:统一参数校验,异常处理 文章目录 Springboot 参数校验@Valid @Validated(最新最全) 前言 ...
- SpringBoot @Validated注解实现参数校验
1. 前言 做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的.如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量 ...
- SpringMVC + Hibernate-Validator 参数校验
2019独角兽企业重金招聘Python工程师标准>>> 前言: Web开发中,最为常见的场景就是前端表单数据.Json数据与后端实体类的绑定,即使JS能校验并阻止大部分的必填漏填的风 ...
- Spring Validation最佳实践及其实现原理,参数校验没那么简单!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:六点半起床 juejin.im/post/685654110 ...
- 聊聊webflux参数校验
为什么80%的码农都做不了架构师?>>> 序 本文主要研究下webflux如何进行参数校验 使用javax.validation domain import javax.val ...
最新文章
- 【Spark篇】---Spark初始
- Python学习笔记--程序控制结构
- OpenCV 击中或没打中 Hit-or-Miss/Hit-and-Miss
- 我是如何使用git把本地代码上传到github上的,值得借鉴
- 互联网日报 | 理想汽车交付量突破30000辆;美团王慧文正式退休;寺库打造首个奢侈品直播基地...
- Laravel核心解读--Database(三) 模型CRUD
- 一个流氓软件有哪些典型特征?
- nginx启动只有master没有worker_深入探索Nginx工作原理
- Python之路 - 网络编程之Socket
- 04. 调用empty而不是检查size()是否为0
- 发现gmail有邀请权了。有谁需要,先送5个。
- 可以测试流放之路伤害的软件,流放之路:游戏难点!你知道平均每秒伤害(DPS)怎么计算吗!...
- php ttc转ttf 在线,iPad字体字库与Windows字库互相转换
- 计算机怎样双面打印,电脑双面打印机怎么打印双面_电脑如何设置自动双面打印-win7之家...
- ANSYS 有限元分析 接触分析
- 看完这篇就够了,mac版本最新Camera Raw 15.1 新功能HDR详解
- Nginx从入门到精通(笔记)
- Wireshark抓包详细分析
- Java提取身份证照片数据,so easy
- 个人信息保护建设实践方法的探索过程