BindingResult是用于接收前一个参数校验(validate或valid)错误信息, 前端将不再显示错误信息
statusCode == 200, 后端也不会抛出异常
如果想要跳转到错误页面, 使用@ResponseStatus指定code和reason, 或是抛出一个异常
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "参数请求错误")
@ResponseBody
@RequestMapping("/test2")
public String test2(@Validated User user, BindingResult result) {
//判断是否有error
if (result.hasErrors()) {
int errorCount = result.getErrorCount();
log.info("异常个数=" + errorCount);
//获取全局与属性的错误
//result.getAllErrors();
//只获取属性校验的错误
for (FieldError fieldError : result.getFieldErrors()) {
log.info("message:" + fieldError.getDefaultMessage());
}
}
System.out.println(user);
return "test2";
}
将校验的错误信息返回到前端
@ResponseBody
@RequestMapping("/test4")
public Map<String, Object> test5(@Validated User user, BindingResult result) {
Map<String, Object> model = null;
if (result.hasErrors()) {
model = result.getModel();
}
System.out.println(user);
return model;
}