com.opensymphony.xwork2.validator
Class ValidationInterceptor
java.lang.Object
com.opensymphony.xwork2.interceptor.AbstractInterceptor
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
com.opensymphony.xwork2.validator.ValidationInterceptor
- All Implemented Interfaces:
- Interceptor, Serializable
- Direct Known Subclasses:
- AnnotationValidationInterceptor
public class ValidationInterceptor
- extends MethodFilterInterceptor
This interceptor runs the action through the standard validation framework, which in turn checks the action against
any validation rules (found in files such as ActionClass-validation.xml) and adds field-level and action-level
error messages (provided that the action implements ValidationAware
). This interceptor
is often one of the last (or second to last) interceptors applied in a stack, as it assumes that all values have
already been set on the action.
This interceptor does nothing if the name of the method being invoked is specified in the excludeMethods
parameter. excludeMethods accepts a comma-delimited list of method names. For example, requests to
foo!input.action and foo!back.action will be skipped by this interceptor if you set the
excludeMethods parameter to "input, back".
Note that this has nothing to do with the Validateable
interface and simply adds
error messages to the action. The workflow of the action request does not change due to this interceptor. Rather,
this interceptor is often used in conjuction with the workflow interceptor.
NOTE: As this method extends off MethodFilterInterceptor, it is capable of
deciding if it is applicable only to selective methods in the action class. See
MethodFilterInterceptor
for more info.
Interceptor parameters:
Extending the interceptor:
There are no known extension points for this interceptor.
Example code:
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref name="params"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
<result name="success">good_result.ftl</result>
</action>
<-- in the following case myMethod of the action class will not
get validated -->
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref name="params"/>
<interceptor-ref name="validation">
<param name="excludeMethods">myMethod</param>
</interceptor-ref>
<interceptor-ref name="workflow"/>
<result name="success">good_result.ftl</result>
</action>
<-- in the following case only annotated methods of the action class will
be validated -->
<action name="someAction" class="com.examples.SomeAction">
<interceptor-ref name="params"/>
<interceptor-ref name="validation">
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor-ref>
<interceptor-ref name="workflow"/>
<result name="success">good_result.ftl</result>
</action>
- Version:
- $Date: 2007-04-04 11:06:44 -0400 (Wed, 04 Apr 2007) $ $Id: ValidationInterceptor.java 1437 2007-04-04 15:06:44Z rainerh $
- Author:
- Jason Carreira, Rainer Hermanns, Alexandru Popescu
- See Also:
ActionValidatorManager
,
DefaultWorkflowInterceptor
,
Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
validateAnnotatedMethodOnly
private boolean validateAnnotatedMethodOnly
ValidationInterceptor
public ValidationInterceptor()
isValidateAnnotatedMethodOnly
public boolean isValidateAnnotatedMethodOnly()
setValidateAnnotatedMethodOnly
public void setValidateAnnotatedMethodOnly(boolean validateAnnotatedMethodOnly)
- Determine if
validate()
should always be called or only per annotated method.
Default to "false".
- Parameters:
validateAnnotatedMethodOnly
-
doBeforeInvocation
protected void doBeforeInvocation(ActionInvocation invocation)
throws Exception
- Gets the current action and its context and calls
DefaultActionValidatorManager.validate(Object, String)
.
- Parameters:
invocation
- the execution state of the Action.
- Throws:
Exception
- if an error occurs validating the action.
doIntercept
protected 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
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.