Class WebFlowMessageCodesResolver

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

public class WebFlowMessageCodesResolver extends 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:

  • 1.: objectName.errorCode
  • 2.: errorCode

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

  • 1.: object name.field.rrorCode
  • 2.: field.errorCode
  • 3.: fieldType.errorCode
  • 4.: errorCode

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

  • 1. try "user.age.typeMismatch"
  • 2. try "age.typeMismatch"
  • 3. try "java.lang.Integer.typeMismatch"
  • 4. try "typeMismatch"
Author:
Keith Donald
  • Field Details

    • CODE_SEPARATOR

      public static final String CODE_SEPARATOR
      The separator that this implementation uses when resolving message codes.
      See Also:
  • Constructor Details

    • WebFlowMessageCodesResolver

      public WebFlowMessageCodesResolver()
  • Method Details

    • 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.name.typeMismatch".

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

    • resolveMessageCodes

      public String[] resolveMessageCodes(String errorCode, String objectName)
      Specified by:
      resolveMessageCodes in interface org.springframework.validation.MessageCodesResolver
    • 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.

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

      protected void buildFieldList(String field, List<String> fieldList)
      Add both keyed and non-keyed entries for the supplied field 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.

      Parameters:
      code - the message code as built by this resolver
      Returns:
      the final message code to be returned
      See Also: