コードをエラーメッセージに解決する
データバインディングと検証について説明しました。このセクションでは、検証エラーに対応するメッセージの出力について説明します。前のセクションに示した例では、name
フィールドと age
フィールドを拒否しました。MessageSource
を使用してエラーメッセージを出力したい場合は、フィールド (この場合は "name" と "age" ) を拒否するときに提供するエラーコードを使用して出力できます。Errors
インターフェースから rejectValue
または他の reject
メソッドの 1 つを (直接的または間接的に、たとえば ValidationUtils
クラスを使用して) 呼び出すと、基になる実装は渡されたコードを登録するだけでなく、多数のコードも登録します。追加のエラーコード。MessageCodesResolver
は、Errors
インターフェースがどのエラーコードを登録するかを決定します。デフォルトでは、DefaultMessageCodesResolver
が使用されます。これにより、(たとえば) 指定したコードでメッセージが登録されるだけでなく、reject メソッドに渡されたフィールド名を含むメッセージも登録されます。rejectValue("age", "too.darn.old")
を使用してフィールドを拒否すると、too.darn.old
コードとは別に、Spring は too.darn.old.age
および too.darn.old.age.int
も登録します (最初のフィールドにはフィールド名が含まれ、2 番目のフィールドにはフィールドの型が含まれます)。これは、開発者がエラーメッセージをターゲットにする際の便宜を図るために行われます。
MessageCodesResolver
およびデフォルト戦略の詳細は、それぞれ MessageCodesResolver
(Javadoc) および DefaultMessageCodesResolver
(Javadoc) の javadoc にあります。