由于项目表单需要校验字段过多,一个一个去判空太麻烦,所以用了@NotNull注解,字段为空会抛出MethodArgumentNotValidException异常。
接下来要取得@NotNull(message=“自定义异常”)里的message内容给前端显示
直接贴上代码:
public String getMessage(MethodArgumentNotValidException exception){
String message = exception.getBindingResult().getFieldError().getDefaultMessage();
// exception.getBindingResult().getFieldErrors(); 获取所有的错误信息
return message;
}
用法:定义一个全局异常处理,一旦发生该类异常,就会捕捉处理,返回给前端信息,返回类Result要根据自己项目业务需要来定义
@ControllerAdvice
public class ExceptionController {
private final Logger log = LoggerFactory.getLogger(ExceptionController.class);
@Autowired
private ResultBuilder resultBuilder;
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseBody
public String getMessage(MethodArgumentNotValidException exception){
Result result = new Result();
result.setCode("400");
String message = exception.getBindingResult().getFieldError().getDefaultMessage();
// exception.getBindingResult().getFieldErrors(); 获取所有的错误信息
result.setMessage(message);
return message;
}
}