| java.lang.Object org.springframework.validation.DefaultMessageCodesResolver
DefaultMessageCodesResolver | public class DefaultMessageCodesResolver implements MessageCodesResolver,Serializable(Code) | | Default implementation of the
MessageCodesResolver interface.
Will create two message codes for an object error, in the following order:
- 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
java.util.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"
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
DefaultMessageCodesResolver.setPrefix prefix to be applied.
author: Juergen Hoeller since: 1.0.1 |
Field Summary | |
final public static String | CODE_SEPARATOR The separator that this implementation uses when resolving message codes. |
CODE_SEPARATOR | final public static String CODE_SEPARATOR(Code) | | The separator that this implementation uses when resolving message codes.
|
buildFieldList | protected void buildFieldList(String field, List fieldList)(Code) | | Add both keyed and non-keyed entries for the supplied field
to the supplied field list.
|
getPrefix | protected String getPrefix()(Code) | | Return the prefix to be applied to any code built by this resolver.
Returns an empty String in case of no prefix.
|
postProcessMessageCode | protected String postProcessMessageCode(String code)(Code) | | Post-process the given message code, built by this resolver.
The default implementation applies the specified prefix, if any.
Parameters: code - the message code as built by this resolver the final message code to be returned See Also: DefaultMessageCodesResolver.setPrefix |
resolveMessageCodes | public String[] resolveMessageCodes(String errorCode, String objectName, String field, Class fieldType)(Code) | | 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
DefaultMessageCodesResolver class level Javadoc for
details on the generated codes.
the list of codes |
setPrefix | public void setPrefix(String prefix)(Code) | | 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".
|
|
|