@Valid的注解要求对变量进行验证,直接加在变量之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。但@Valid默认返回信息非常长,我们可以定义全局异常子定义我们需要返回的信息和格式。
@valid使用方法:
https://blog.csdn.net/weixin_38118016/article/details/80977207
/**
* @Author: thunder
* @Date: 2020/8/7 14:56
* @ControllerAdvice 实现全局异常处理
*/
@ControllerAdvice
public class MyGlobalExceptionHandler {
/**
* 定义@Valid注解全局异常处理机制
* @param e
* @return
*/
@ExceptionHandler(BindException.class)
@ResponseBody
public JsonResult validationBodyException(BindException e){
e.printStackTrace();
//打印校验住的所有的错误信息
StringBuilder sb = new StringBuilder("参数错误:[");
List<ObjectError> list = ((BindException) e).getAllErrors();
for (ObjectError item : list) {
sb.append(item.getDefaultMessage()).append(',');
}
sb.deleteCharAt(sb.length()-1);
sb.append(']');
String msg = sb.toString();
return new JsonResult(500,sb.toString());
}
}
class JsonResult {
private int code;
private String msg;
public JsonResult(int code, String msg){
this.code = code;
this.msg = msg;
}
public void setCode(int code) {
this.code = code;
}
public int getCode() {
return code;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
}