com.opensymphony.xwork2.interceptor

## Class ConversionErrorInterceptor

- java.lang.Object
- - com.opensymphony.xwork2.interceptor.AbstractInterceptor
  - - com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
    - - com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor

- All Implemented Interfaces:
    Interceptor, Serializable
  Direct Known Subclasses:
    StrutsConversionErrorInterceptor

      public class ConversionErrorInterceptor
      extends MethodFilterInterceptor

  ConversionErrorInterceptor adds conversion errors from the ActionContext to the Action's field errors.

  This interceptor adds any error found in the `ActionContext`'s conversionErrors map as a field error (provided that the action implements `ValidationAware`). In addition, any field that contains a validation error has its original value saved such that any subsequent requests for that value return the original value rather than the value in the action. This is important because if the value "abc" is submitted and can't be converted to an int, we want to display the original string ("abc") again rather than the int value (likely 0, which would make very little sense to the user).

  Note: Since 2.5.2, this interceptor extends `MethodFilterInterceptor`, therefore being able to deal with excludeMethods / includeMethods parameters. See [Workflow Interceptor] (class `DefaultWorkflowInterceptor`) for documentation and examples on how to use this feature.

  Interceptor parameters:

  - None

  Extending the interceptor:

  Because this interceptor is not web-specific, it abstracts the logic for whether an error should be added. This allows for web-specific interceptors to use more complex logic in the `shouldAddError(java.lang.String, java.lang.Object)` method for when a value has a conversion error but is null or empty or otherwise indicates that the value was never actually entered by the user.

  Example code:

       <action name="someAction" class="com.examples.SomeAction">
           <interceptor-ref name="params"/>
           <interceptor-ref name="conversionError"/>
           <result name="success">good_result.ftl</result>
       </action>

  Author:
    Jason Carreira
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ORIGINAL_PROPERTY_OVERRIDE`

    - ### Fields inherited from class com.opensymphony.xwork2.interceptor.MethodFilterInterceptor

      `excludeMethods, includeMethods`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConversionErrorInterceptor()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `doIntercept(ActionInvocation invocation)` Subclasses must override to implement the interceptor logic.
    `protected String` | `escape(Object value)`
    `protected Object` | `getOverrideExpr(ActionInvocation invocation, Object value)`
    `protected boolean` | `shouldAddError(String propertyName, Object value)`

    - ### Methods inherited from class com.opensymphony.xwork2.interceptor.MethodFilterInterceptor

      `applyInterceptor, getExcludeMethodsSet, getIncludeMethodsSet, intercept, setExcludeMethods, setIncludeMethods`

    - ### Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor

      `destroy, init`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ORIGINAL_PROPERTY_OVERRIDE

          public static final String ORIGINAL_PROPERTY_OVERRIDE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ConversionErrorInterceptor

          public ConversionErrorInterceptor()

  - ### Method Detail

    - #### getOverrideExpr

          protected Object getOverrideExpr(ActionInvocation invocation,
                                           Object value)

    - #### escape

          protected String escape(Object value)

    - #### doIntercept

          public String doIntercept(ActionInvocation invocation)
                             throws Exception

      Description copied from class: `MethodFilterInterceptor`
      Subclasses must override to implement the interceptor logic.
      Specified by:
        `doIntercept` in class `MethodFilterInterceptor`
      Parameters:
        `invocation` - the action invocation
      Returns:
        the result of invocation
      Throws:
        `Exception` - in case of any errors

    - #### shouldAddError

          protected boolean shouldAddError(String propertyName,
                                           Object value)

Copyright © 2000–2022 Apache Software Foundation. All rights reserved.