类 DefaultMessageCodesResolver
- 所有已实现的接口:
MessageCodesResolver,Serializable
MessageCodesResolver interface.
Will create two message codes for an object error, in the following order (when
using the prefixed
formatter):
- 1.: code + "." + object name
- 2.: code
Will create four message codes for a field specification, in the following order:
- 1.: code + "." + object name + "." + field
- 2.: code + "." + field
- 3.: code + "." + field type
- 4.: code
For example, in case of code "typeMismatch", object name "user", field "age":
- 1. try "typeMismatch.user.age"
- 2. try "typeMismatch.age"
- 3. try "typeMismatch.int"
- 4. try "typeMismatch"
This resolution algorithm thus can be leveraged for example to show specific messages for binding errors like "required" and "typeMismatch":
- at the object + field level ("age" field, but only on "user");
- at the field level (all "age" fields, no matter which object name);
- or at the general level (all fields, on any object).
In case of array, List or Map properties,
both codes for specific elements and for the whole collection are
generated. Assuming a field "name" of an array "groups" in object "user":
- 1. try "typeMismatch.user.groups[0].name"
- 2. try "typeMismatch.user.groups.name"
- 3. try "typeMismatch.groups[0].name"
- 4. try "typeMismatch.groups.name"
- 5. try "typeMismatch.name"
- 6. try "typeMismatch.java.lang.String"
- 7. try "typeMismatch"
By default the errorCodes will be placed at the beginning of constructed
message strings. The messageCodeFormatter property can be used to specify an alternative concatenation
format.
In order to group all codes into a specific category within your resource bundles,
e.g. "validation.typeMismatch.name" instead of the default "typeMismatch.name",
consider specifying a prefix to be applied.
- 从以下版本开始:
- 4.0
- 作者:
- Juergen Hoeller, Phillip Webb, Chris Beams
- 另请参阅:
-
嵌套类概要
嵌套类 -
字段概要
字段修饰符和类型字段说明static final StringThe separator that this implementation uses when resolving message codes. -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected voidbuildFieldList(String field, List<String> fieldList) Add both keyed and non-keyed entries for the suppliedfieldto the supplied field list.protected StringReturn the prefix to be applied to any code built by this resolver.protected StringpostProcessMessageCode(String code) Post-process the given message code, built by this resolver.String[]resolveMessageCodes(String errorCode, String objectName) Build message codes for the given error code and object name.String[]resolveMessageCodes(String errorCode, String objectName, String field, Class<?> fieldType) Build the code list for the given code and field: an object/field-specific code, a field-specific code, a plain error code.voidsetMessageCodeFormatter(MessageCodeFormatter formatter) Specify the format for message codes built by this resolver.voidSpecify a prefix to be applied to any code built by this resolver.
-
字段详细资料
-
CODE_SEPARATOR
The separator that this implementation uses when resolving message codes.- 另请参阅:
-
-
构造器详细资料
-
DefaultMessageCodesResolver
public DefaultMessageCodesResolver()
-
-
方法详细资料
-
setPrefix
Specify a prefix to be applied to any code built by this resolver.Default is none. Specify, for example, "validation." to get error codes like "validation.typeMismatch.name".
-
getPrefix
Return the prefix to be applied to any code built by this resolver.Returns an empty String in case of no prefix.
-
setMessageCodeFormatter
Specify the format for message codes built by this resolver.The default is
DefaultMessageCodesResolver.Format.PREFIX_ERROR_CODE.- 从以下版本开始:
- 4.0
- 另请参阅:
-
resolveMessageCodes
从接口复制的说明:MessageCodesResolverBuild message codes for the given error code and object name. Used for building the codes list of an ObjectError.- 指定者:
resolveMessageCodes在接口中MessageCodesResolver- 参数:
errorCode- the error code used for rejecting the objectobjectName- the name of the object- 返回:
- the message codes to use
-
resolveMessageCodes
public String[] resolveMessageCodes(String errorCode, String objectName, String field, @Nullable Class<?> fieldType) Build the code list for the given code and field: an object/field-specific code, a field-specific code, a plain error code.Arrays, Lists and Maps are resolved both for specific elements and the whole collection.
See the
class level javadocfor details on the generated codes.- 指定者:
resolveMessageCodes在接口中MessageCodesResolver- 参数:
errorCode- the error code used for rejecting the valueobjectName- the name of the objectfield- the field namefieldType- the field type (may benullif not determinable)- 返回:
- the list of codes
-
buildFieldList
Add both keyed and non-keyed entries for the suppliedfieldto the supplied field list. -
postProcessMessageCode
Post-process the given message code, built by this resolver.The default implementation applies the specified prefix, if any.
- 参数:
code- the message code as built by this resolver- 返回:
- the final message code to be returned
- 另请参阅:
-