Spring Web Flow

org.springframework.webflow.validation
Class WebFlowMessageCodesResolver

java.lang.Object
  extended by org.springframework.webflow.validation.WebFlowMessageCodesResolver
All Implemented Interfaces:
org.springframework.validation.MessageCodesResolver

public class WebFlowMessageCodesResolver
extends java.lang.Object
implements org.springframework.validation.MessageCodesResolver

Message Codes Resolver that implements the default Web Flow 2.x algorithm. The default algorithm differs from the Spring MVC DefaultMessageCodesResolver by appending the errorCode last instead of first. For example: myBean.myProperty.required instead of required.myBean.myProperty. Specifically:

Will create two message codes for an object error, in the following order:

Will create four message codes for a field error, in the following order:

For example, in case of code "typeMismatch", object name "user", field "age" of type Integer:

Author:
Keith Donald

Field Summary
static java.lang.String CODE_SEPARATOR
          The separator that this implementation uses when resolving message codes.
 
Constructor Summary
WebFlowMessageCodesResolver()
           
 
Method Summary
protected  void buildFieldList(java.lang.String field, java.util.List<java.lang.String> 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)
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CODE_SEPARATOR

public static final java.lang.String CODE_SEPARATOR
The separator that this implementation uses when resolving message codes.

See Also:
Constant Field Values
Constructor Detail

WebFlowMessageCodesResolver

public WebFlowMessageCodesResolver()
Method Detail

setPrefix

public void setPrefix(java.lang.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.name.typeMismatch".


getPrefix

protected java.lang.String getPrefix()
Return the prefix to be applied to any code built by this resolver.

Returns an empty String in case of no prefix.


resolveMessageCodes

public java.lang.String[] resolveMessageCodes(java.lang.String errorCode,
                                              java.lang.String objectName)
Specified by:
resolveMessageCodes in interface org.springframework.validation.MessageCodesResolver

resolveMessageCodes

public 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.

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.

Specified by:
resolveMessageCodes in interface org.springframework.validation.MessageCodesResolver
Returns:
the list of codes

buildFieldList

protected void buildFieldList(java.lang.String field,
                              java.util.List<java.lang.String> fieldList)
Add both keyed and non-keyed entries for the supplied field to the supplied field list.


postProcessMessageCode

protected java.lang.String postProcessMessageCode(java.lang.String 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
Returns:
the final message code to be returned
See Also:
setPrefix(java.lang.String)

Spring Web Flow