Class ConversionErrorInterceptor

  extended by com.opensymphony.xwork2.interceptor.AbstractInterceptor
      extended by com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor
All Implemented Interfaces:

public class ConversionErrorInterceptor
extends AbstractInterceptor

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

Interceptor parameters:

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>

Jason Carreira
See Also:
Serialized Form

Field Summary
static java.lang.String ORIGINAL_PROPERTY_OVERRIDE
Constructor Summary
Method Summary
protected  java.lang.String escape(java.lang.Object value)
protected  java.lang.Object getOverrideExpr(ActionInvocation invocation, java.lang.Object value)
 java.lang.String intercept(ActionInvocation invocation)
          Override to handle interception
protected  boolean shouldAddError(java.lang.String propertyName, java.lang.Object value)
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


public static final java.lang.String ORIGINAL_PROPERTY_OVERRIDE
See Also:
Constant Field Values
Constructor Detail


public ConversionErrorInterceptor()
Method Detail


protected java.lang.Object getOverrideExpr(ActionInvocation invocation,
                                           java.lang.Object value)


protected java.lang.String escape(java.lang.Object value)


public java.lang.String intercept(ActionInvocation invocation)
                           throws java.lang.Exception
Description copied from class: AbstractInterceptor
Override to handle interception

Specified by:
intercept in interface Interceptor
Specified by:
intercept in class AbstractInterceptor
invocation - the action invocation
the return code, either returned from ActionInvocation.invoke(), or from the interceptor itself.
java.lang.Exception - any system-level error, as defined in Action.execute().


protected boolean shouldAddError(java.lang.String propertyName,
                                 java.lang.Object value)

Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.