將代碼解析為錯誤訊息

我們涵蓋了資料繫結和驗證。本節涵蓋輸出與驗證錯誤對應的訊息。在前一節中顯示的範例中,我們拒絕了 nameage 欄位。如果我們想要使用 MessageSource 輸出錯誤訊息,我們可以透過使用我們在拒絕欄位時提供的錯誤代碼(在本例中為「name」和「age」)來執行此操作。當您呼叫(直接或間接,例如,透過使用 ValidationUtils 類別)rejectValueErrors 介面中的其他 reject 方法之一時,底層實作不僅會註冊您傳入的代碼,還會註冊許多其他錯誤代碼。MessageCodesResolver 決定 Errors 介面註冊哪些錯誤代碼。預設情況下,使用 DefaultMessageCodesResolver,它(例如)不僅註冊您提供的代碼的訊息,還註冊包含您傳遞給 reject 方法的欄位名稱的訊息。因此,如果您使用 rejectValue("age", "too.darn.old") 拒絕欄位,除了 too.darn.old 代碼之外,Spring 還會註冊 too.darn.old.agetoo.darn.old.age.int(第一個包含欄位名稱,第二個包含欄位的類型)。這樣做是為了方便開發人員在定位錯誤訊息時提供協助。

有關 MessageCodesResolver 和預設策略的更多資訊,請參閱 MessageCodesResolverDefaultMessageCodesResolver 的 javadoc。