6-11 集成Validation做参数校验
Posted 孤注一掷 、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6-11 集成Validation做参数校验相关的知识,希望对你有一定的参考价值。
对电子书查询和保存做参数校验
集成spring-boot-starter-validation
对保存接口和查询接口增加参数校验
校验不通过时,前端弹出错误提示
首先pom.xml中添加内置依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
修改:
测试结果会有很多日志信息:
下面新增控制器异常处理类:
/**
* 统一异常处理、数据预处理等
*/
@ControllerAdvice
public class ControllerExceptionHandler
private static final Logger LOG = LoggerFactory.getLogger(ControllerExceptionHandler.class);
/**
* 校验异常统一处理
* @param e
* @return
*/
@ExceptionHandler(value = BindException.class)
@ResponseBody
public CommonResp validExceptionHandler(BindException e)
CommonResp commonResp = new CommonResp();
LOG.warn("参数校验失败:", e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
commonResp.setSuccess(false);
commonResp.setMessage(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
return commonResp;
这个类叫 统一异常处理类。
@controllerAdvice 可以对controller做一些统一的异常处理,或者是数据的预处理。
@ExceptionHandler 可以对BindException做一个统一的异常处理,这里是有针对性的,对校验框架做拦截,当出现异常的时候会进入下面的方法。首先把错误日志打印出来,然后构造一个CommonResp,模拟我们的业务代码,设置为false,表示这段业务失败了,最后返回出去。
这个类会被springboot扫描到。
测试结果:
然后修改前端:引入消息提示框,修改页面大小为1001。
应用消息框:
结果:
以上是关于6-11 集成Validation做参数校验的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot Validation参数校验 详解自定义注解规则和分组校验