类 DefaultMessageCodesResolver
- java.lang.Object
- org.springframework.validation.DefaultMessageCodesResolver
- 所有已实现的接口:
Serializable
,MessageCodesResolver
public class DefaultMessageCodesResolver extends Object implements MessageCodesResolver, Serializable
Default implementation of theMessageCodesResolver
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
orMap
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
errorCode
s will be placed at the beginning of constructed message strings. ThemessageCodeFormatter
property can be used to specify an alternative concatenationformat
.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.- 从以下版本开始:
- 1.0.1
- 作者:
- Juergen Hoeller, Phillip Webb, Chris Beams
- 另请参阅:
- 序列化表格
嵌套类概要
嵌套类 修饰符和类型 类 说明 static class
DefaultMessageCodesResolver.Format
Common message code formats.
字段概要
字段 修饰符和类型 字段 说明 static String
CODE_SEPARATOR
The separator that this implementation uses when resolving message codes.
构造器概要
构造器 构造器 说明 DefaultMessageCodesResolver()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected void
buildFieldList(String field, List<String> fieldList)
Add both keyed and non-keyed entries for the suppliedfield
to the supplied field list.protected String
getPrefix()
Return the prefix to be applied to any code built by this resolver.protected String
postProcessMessageCode(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.void
setMessageCodeFormatter(MessageCodeFormatter formatter)
Specify the format for message codes built by this resolver.void
setPrefix(String prefix)
Specify a prefix to be applied to any code built by this resolver.
字段详细资料
CODE_SEPARATOR
public static final String CODE_SEPARATOR
The separator that this implementation uses when resolving message codes.- 另请参阅:
- 常量字段值
构造器详细资料
DefaultMessageCodesResolver
public DefaultMessageCodesResolver()
方法详细资料
setPrefix
public void setPrefix(String prefix)
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
protected String getPrefix()
Return the prefix to be applied to any code built by this resolver.Returns an empty String in case of no prefix.
setMessageCodeFormatter
public void setMessageCodeFormatter(MessageCodeFormatter formatter)
Specify the format for message codes built by this resolver.The default is
DefaultMessageCodesResolver.Format.PREFIX_ERROR_CODE
.- 从以下版本开始:
- 3.2
- 另请参阅:
DefaultMessageCodesResolver.Format
resolveMessageCodes
public String[] resolveMessageCodes(String errorCode, String objectName)
从接口复制的说明:MessageCodesResolver
Build 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, 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 javadoc
for 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 benull
if not determinable)- 返回:
- the list of codes
buildFieldList
protected void buildFieldList(String field, List<String> fieldList)
Add both keyed and non-keyed entries for the suppliedfield
to the supplied field list.
postProcessMessageCode
protected String postProcessMessageCode(String code)
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
- 另请参阅:
setPrefix(java.lang.String)