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