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;
}