public class ConversionErrorInterceptor extends MethodFilterInterceptor
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:
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 theshouldAddError(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>
Modifier and Type | Field and Description |
---|---|
static String |
ORIGINAL_PROPERTY_OVERRIDE |
excludeMethods, includeMethods
Constructor and Description |
---|
ConversionErrorInterceptor() |
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) |
applyInterceptor, getExcludeMethodsSet, getIncludeMethodsSet, intercept, setExcludeMethods, setIncludeMethods
destroy, init
public static final String ORIGINAL_PROPERTY_OVERRIDE
protected Object getOverrideExpr(ActionInvocation invocation, Object value)
public String doIntercept(ActionInvocation invocation) throws Exception
MethodFilterInterceptor
doIntercept
in class MethodFilterInterceptor
invocation
- the action invocationException
- in case of any errorsCopyright © 2000–2020 Apache Software Foundation. All rights reserved.