public class DefaultMessageCodesResolver extends java.lang.Object implements MessageCodesResolver, java.io.Serializable
MessageCodesResolver interface.
Will create two message codes for an object error, in the following order:
Will create four message codes for a field specification, in the following order:
For example, in case of code "typeMismatch", object name "user", field "age":
This resolution algorithm thus can be leveraged for example to show specific messages for binding errors like "required" and "typeMismatch":
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":
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.
| 限定符和类型 | 字段和说明 |
|---|---|
static java.lang.String |
CODE_SEPARATOR
The separator that this implementation uses when resolving message codes.
|
| 构造器和说明 |
|---|
DefaultMessageCodesResolver() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
buildFieldList(java.lang.String field,
java.util.List fieldList)
Add both keyed and non-keyed entries for the supplied
field
to the supplied field list. |
protected java.lang.String |
getPrefix()
Return the prefix to be applied to any code built by this resolver.
|
protected java.lang.String |
postProcessMessageCode(java.lang.String code)
Post-process the given message code, built by this resolver.
|
java.lang.String[] |
resolveMessageCodes(java.lang.String errorCode,
java.lang.String objectName)
Build message codes for the given error code and object name.
|
java.lang.String[] |
resolveMessageCodes(java.lang.String errorCode,
java.lang.String objectName,
java.lang.String field,
java.lang.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 |
setPrefix(java.lang.String prefix)
Specify a prefix to be applied to any code built by this resolver.
|
public static final java.lang.String CODE_SEPARATOR
public void setPrefix(java.lang.String prefix)
Default is none. Specify, for example, "validation." to get error codes like "validation.typeMismatch.name".
protected java.lang.String getPrefix()
Returns an empty String in case of no prefix.
public java.lang.String[] resolveMessageCodes(java.lang.String errorCode,
java.lang.String objectName)
MessageCodesResolverresolveMessageCodes 在接口中 MessageCodesResolvererrorCode - the error code used for rejecting the objectobjectName - the name of the objectpublic java.lang.String[] resolveMessageCodes(java.lang.String errorCode,
java.lang.String objectName,
java.lang.String field,
java.lang.Class fieldType)
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 在接口中 MessageCodesResolvererrorCode - the error code used for rejecting the valueobjectName - the name of the objectfield - the field namefieldType - the field type (may be null if not determinable)protected void buildFieldList(java.lang.String field,
java.util.List fieldList)
field
to the supplied field list.protected java.lang.String postProcessMessageCode(java.lang.String code)
The default implementation applies the specified prefix, if any.
code - the message code as built by this resolversetPrefix(java.lang.String)