クラス DefaultMessageCodesResolver
- 実装されたすべてのインターフェース:
SerializableSE
,MessageCodesResolver
MessageCodesResolver
インターフェースのデフォルト実装。 オブジェクトエラーに対して 2 つのメッセージコードを次の順序で作成します(prefixed
formatter
を使用する場合)。
- 1.: コード + "." + オブジェクト名
- 2.: コード
次の順序で、フィールド仕様の 4 つのメッセージコードを作成します。
- 1.: コード + "." + オブジェクト名 + "." + フィールド
- 2.: コード + "." + フィールド
- 3.: コード + "." + フィールド型
- 4.: コード
例: コード "typeMismatch"、オブジェクト名 "user"、フィールド "age" の場合:
- 1. "typeMismatch.user.age" を試してください
- 2. "typeMismatch.age" を試してください
- 3. "typeMismatch.int" を試してください
- 4. "typeMismatch" を試してください
この解決アルゴリズムは、たとえば「必須」や "typeMismatch" などのバインディングエラーに関する特定のメッセージを表示するために活用できます。
- オブジェクト + フィールドレベル( "age" フィールド、ただし "user" のみ)。
- フィールドレベル(オブジェクト名に関係なく、すべての "age" フィールド);
- または一般的なレベル(すべてのフィールド、任意のオブジェクト)。
配列、List
SE、Map
SE プロパティの場合、特定の要素とコレクション全体の両方のコードが生成されます。オブジェクト "user" の配列 "groups" のフィールド "name" を想定する
- 1. "typeMismatch.user.groups[0].name" を試してください
- 2. "typeMismatch.user.groups.name" を試してください
- 3. "typeMismatch.groups[0].name" を試してください
- 4. "typeMismatch.groups.name" を試してください
- 5. "typeMismatch.name" を試してください
- 6. "typeMismatch.java.lang.String" を試してください
- 7. "typeMismatch" を試してください
デフォルトでは、errorCode
は構築されたメッセージ文字列の先頭に配置されます。messageCodeFormatter
プロパティを使用して、代替連結 format
を指定できます。
リソースバンドル内のすべてのコードを特定のカテゴリ (たとえば、デフォルトの "typeMismatch.name" ではなく "validation.typeMismatch.name" ) にグループ化するには、適用する prefix
を指定することを検討してください。
- 導入:
- 1.0.1
- 作成者:
- Juergen Hoeller, Phillip Webb, Chris Beams
- 関連事項:
ネストされたクラスのサマリー
フィールドサマリー
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected void
buildFieldList
(StringSE field, ListSE<StringSE> fieldList) 提供されたフィールドリストに、提供されたfield
のキー設定されたエントリとキー設定されていないエントリの両方を追加します。protected StringSE
このリゾルバーによって構築されたすべてのコードに適用される接頭辞を返します。protected StringSE
このリゾルバーによって構築された、指定されたメッセージコードを後処理します。StringSE[]
resolveMessageCodes
(StringSE errorCode, StringSE objectName) 指定されたエラーコードとオブジェクト名のメッセージコードを作成します。StringSE[]
resolveMessageCodes
(StringSE errorCode, StringSE objectName, StringSE field, ClassSE<?> fieldType) 指定されたコードとフィールドのコードリストを作成します: オブジェクト / フィールド固有のコード、フィールド固有のコード、プレーンなエラーコード。void
setMessageCodeFormatter
(MessageCodeFormatter formatter) このリゾルバーによって作成されたメッセージコードの形式を指定します。void
このリゾルバーによってビルドされたコードに適用されるプレフィックスを指定します。
フィールドの詳細
CODE_SEPARATOR
この実装がメッセージコードを解決するときに使用するセパレータ。- 関連事項:
コンストラクターの詳細
DefaultMessageCodesResolver
public DefaultMessageCodesResolver()
メソッドの詳細
setPrefix
このリゾルバーによってビルドされたコードに適用されるプレフィックスを指定します。デフォルトは none です。たとえば、"validation." を指定します。"validation.typeMismatch.name" のようなエラーコードを取得します。
getPrefix
このリゾルバーによって構築されたすべてのコードに適用される接頭辞を返します。接頭辞がない場合は空の文字列を返します。
setMessageCodeFormatter
このリゾルバーによって作成されたメッセージコードの形式を指定します。デフォルトは
DefaultMessageCodesResolver.Format.PREFIX_ERROR_CODE
です。- 導入:
- 3.2
- 関連事項:
resolveMessageCodes
インターフェースからコピーされた説明:MessageCodesResolver
指定されたエラーコードとオブジェクト名のメッセージコードを作成します。ObjectError のコードリストを作成するために使用されます。- 次で指定:
- インターフェース
MessageCodesResolver
のresolveMessageCodes
- パラメーター:
errorCode
- オブジェクトを拒否するために使用されるエラーコードobjectName
- オブジェクトの名前- 戻り値:
- 使用するメッセージコード
resolveMessageCodes
public StringSE[] resolveMessageCodes(StringSE errorCode, StringSE objectName, StringSE field, @Nullable ClassSE<?> fieldType) 指定されたコードとフィールドのコードリストを作成します: オブジェクト / フィールド固有のコード、フィールド固有のコード、プレーンなエラーコード。配列、リスト、マップは、特定の要素とコレクション全体の両方に対して解決されます。
生成されたコードの詳細については、
class level javadoc
を参照してください。- 次で指定:
- インターフェース
MessageCodesResolver
のresolveMessageCodes
- パラメーター:
errorCode
- 値を拒否するために使用されるエラーコードobjectName
- オブジェクトの名前field
- フィールド名fieldType
- フィールド型 (決定できない場合はnull
になる可能性があります)- 戻り値:
- コードのリスト
buildFieldList
提供されたフィールドリストに、提供されたfield
のキー設定されたエントリとキー設定されていないエントリの両方を追加します。postProcessMessageCode
このリゾルバーによって構築された、指定されたメッセージコードを後処理します。デフォルトの実装では、指定されたプレフィックスがある場合はそれを適用します。
- パラメーター:
code
- このリゾルバーによって構築されたメッセージコード- 戻り値:
- 返される最終的なメッセージコード
- 関連事項: