0
我有一個Spring MVC應用程序,我使用數據綁定來向發佈的值填充自定義窗體對象someForm。控制器的有趣的部分如下所示:如何在Spring MVC中處理驗證和嚴重錯誤
@RequestMapping(value = "/some/path", method = RequestMethod.POST)
public String createNewUser(@ModelAttribute("someForm") SomeForm someForm, BindingResult result){
SomeFormValidator validator = new SomeFormValidator();
validator.validate(someForm, result);
if(result.hasErrors()){
...
return "/some/path";
}
}
SomeFormValidator類實現泉org.springframework.validation.Validator接口。雖然這對驗證用戶輸入和創建與輸入相關的錯誤消息很有用,但這似乎不太適合處理更嚴重的錯誤,這些錯誤不能呈現給用戶,但仍然與控制器輸入有關,如缺少錯誤隱藏的領域預計將在後期出席。這樣的錯誤應該導致應用程序錯誤。什麼是Spring MVC處理這種錯誤的方法?
謝謝!因此,在使用Validator之後,我將不得不再次檢查一些重要的驗證錯誤並手動拋出異常(然後由ExceptionHandlers處理),因爲Springs Errors類僅用於爲用戶保留錯誤消息,這些錯誤消息在語義上與應用錯誤? – xSNRG
是的,應用程序錯誤是不同的,因此必須以不同的方式處理。 Spring錯誤類用於解決表單及其後備對象之間的綁定錯誤。只要確保在任何Service-DAO-Controller代碼中都沒有try ... catch塊。 – Bnrdo
非常感謝! – xSNRG