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".
The workflow of the action request does not change due to this interceptor. Rather, this interceptor is often used in conjunction 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>
 
 ActionValidatorManager, 
DefaultWorkflowInterceptor, 
Serialized FormConditionalInterceptor.LegacyAdapterexcludeMethods, includeMethods| Constructor and Description | 
|---|
| ValidationInterceptor() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | doBeforeInvocation(ActionInvocation invocation)Gets the current action and its context and delegates to  ActionValidatorManagerproper validate method. | 
| protected String | doIntercept(ActionInvocation invocation)Subclasses must override to implement the interceptor logic. | 
| protected String | getValidationContext(ActionProxy proxy)
 Returns the context that will be used by the
  ActionValidatorManagerto associate the action invocation with
 the appropriateValidatorConfigs. | 
| boolean | isValidateAnnotatedMethodOnly()Gets if  validate()should always be called or only per annotated method. | 
| void | setActionValidatorManager(ActionValidatorManager mgr) | 
| void | setAlwaysInvokeValidate(String alwaysInvokeValidate)Determines if  Validateable'svalidate()should always
 be invoked. | 
| void | setDeclarative(boolean declarative)Determines if validation based on annotations or xml should be performed. | 
| void | setProgrammatic(boolean programmatic)Determines if  Validateable'svalidate()should be called,
 as well as methods whose name that start with "validate". | 
| void | setValidateAnnotatedMethodOnly(boolean validateAnnotatedMethodOnly)Determine if  validate()should always be called or only per annotated method. | 
applyInterceptor, getExcludeMethodsSet, getIncludeMethodsSet, intercept, setExcludeMethods, setIncludeMethodsintercept, shouldIntercept, shouldInterceptdestroy, init, setDisabledclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitadaptadaptdestroy, initpublic void setActionValidatorManager(ActionValidatorManager mgr)
public void setProgrammatic(boolean programmatic)
Validateable's validate() should be called,
 as well as methods whose name that start with "validate". Defaults to "true".programmatic - true then validate() is invoked.public void setDeclarative(boolean declarative)
declarative - true then perform validation based on annotations or xml.public void setAlwaysInvokeValidate(String alwaysInvokeValidate)
Validateable's validate() should always
 be invoked. Default to "true".alwaysInvokeValidate - true then validate() is always invoked.public boolean isValidateAnnotatedMethodOnly()
validate() should always be called or only per annotated method.public void setValidateAnnotatedMethodOnly(boolean validateAnnotatedMethodOnly)
validate() should always be called or only per annotated method.
 Default to false.validateAnnotatedMethodOnly - true to only validate per annotated method, otherwise false to always validate.protected void doBeforeInvocation(ActionInvocation invocation) throws Exception
ActionValidatorManager proper validate method.invocation - the execution state of the Action.Exception - if an error occurs validating the action.protected String doIntercept(ActionInvocation invocation) throws Exception
MethodFilterInterceptordoIntercept in class MethodFilterInterceptorinvocation - the action invocationException - in case of any errorsprotected String getValidationContext(ActionProxy proxy)
 Returns the context that will be used by the
 ActionValidatorManager to associate the action invocation with
 the appropriate ValidatorConfigs.
 
The context returned is used in the pattern ActionClass-context-validation.xml
The default context is the action name from the URL, but the method can be overridden to implement custom contexts.
This can be useful in cases in which a single action and a single model require vastly different validation based on some condition.
proxy - action proxyCopyright © 2000–2025 Apache Software Foundation. All rights reserved.