クラス 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" フィールド);
- または一般的なレベル(すべてのフィールド、任意のオブジェクト)。
配列、ListSE、MapSE プロパティの場合、特定の要素とコレクション全体の両方のコードが生成されます。オブジェクト "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 voidbuildFieldList(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) 指定されたコードとフィールドのコードリストを作成します: オブジェクト / フィールド固有のコード、フィールド固有のコード、プレーンなエラーコード。voidsetMessageCodeFormatter(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- このリゾルバーによって構築されたメッセージコード- 戻り値:
- 返される最終的なメッセージコード
- 関連事項: