[英]Spring: How to resolve a validation error -> error code -> error message
在Spring中,在驗證之后,我們在controller
獲得了一個BindingResult
對象。
很簡單,如果我收到驗證錯誤,我想重新顯示我的表單,並在每個受影響的字段上方顯示錯誤消息。
因此,為了檢查我的FormObject
字段username
的字段錯誤,我調用:
FieldError usernameFieldError = bindingResult.getFieldError("username");
好的,現在我持有一個FieldError
對象,假設我使用DefaultMessageCodeResolver
現在包含4個可能的錯誤代碼。
如何從FieldError
- >一個可供用戶使用的字符串?
我在我的webapplication上下文中定義了MessageSource
,因此我可以將單個錯誤代碼映射到消息。
但有時默認消息是最好的,有時我希望兩個錯誤代碼可能有相關的消息,所以我們需要選擇最好的消息。
我可以使用什么方法來確定為字段錯誤提供的最佳錯誤消息?
正如您所猜測的那樣,您正在努力讓自己變得更加困難。 FieldError
對象本身就是MessageSourceResolvable
。 您無需從中獲取代碼,然后手動將單個代碼移至消息源並繼續查看。 您可以將它傳遞給MessageSource
,它將找到在您的語言環境中定義了轉換的最具體的一個。 (假設你的代碼解析器以正確的順序放置它們。)
在大多數情況下,你甚至不需要這樣做。 通常不需要將Errors
放在您的支持對象上並自行翻譯它們。 jsp庫中的form
命名空間提供了一個標記,可以為您查找錯誤消息。 您需要做的就是將Errors
放在ModelMap
。 查看文檔:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.