一、问题
校验参数使用@NotNull,@NotBlank,@Length等注解时,若前端传参异常,返回的异常信息比较多,前端往往不能直观看出参数异常在哪里。这里直接返回注解中message中的信息。
二、代码
@ControllerAdvice
public class ControllerException {
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
public Object handleValidException(MethodArgumentNotValidException e) {
if (e ==null || e.getBindingResult() == null) {
return "入参异常,请检查后重新输入";
}
List<ObjectOrror> errors = e.getBindingResult().getAllErrors;
if (errors == null || errors.size() == 0) {
return "入参异常,请检查后重新输入";
}
return errors.stream().collect(Collectors.joining(","));
}
}