Class DefaultWorkflowInterceptor

  extended by com.opensymphony.xwork2.interceptor.AbstractInterceptor
      extended by com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
          extended by com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
All Implemented Interfaces:
Interceptor, Serializable

public class DefaultWorkflowInterceptor
extends MethodFilterInterceptor

An interceptor that makes sure there are not validation errors before allowing the interceptor chain to continue. This interceptor does not perform any validation.

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: As this method extends off MethodFilterInterceptor, it is capable of deciding if it is applicable only to selective methods in the action class. This is done by adding param tags for the interceptor element, naming either a list of excluded method names and/or a list of included method names, whereby includeMethods overrides excludedMethods. A single * sign is interpreted as wildcard matching all methods for both parameters. 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 this case myMethod as well as mySecondMethod of the action class will not pass through the workflow process --> <action name="someAction" class="com.examples.SomeAction"> <interceptor-ref name="params"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"> <param name="excludeMethods">myMethod,mySecondMethod</param> </interceptor-ref name="workflow"> <result name="success">good_result.ftl</result> </action>

<-- In this case, the result named "error" will be used when an action / field error is found --> <-- The Interceptor will only be applied for myWorkflowMethod method of action classes, since this is the only included method while any others are excluded --> <action name="someAction" class="com.examples.SomeAction"> <interceptor-ref name="params"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"> <param name="inputResultName">error</param> <param name="excludeMethods">*</param> <param name="includeMethods">myWorkflowMethod</param> </interceptor-ref> <result name="success">good_result.ftl</result> </action>

Jason Carreira, Rainer Hermanns, Alexandru Popescu, Philip Luppens, tm_jee
See Also:
Serialized Form

Field Summary
private static Class[] EMPTY_CLASS_ARRAY
private  String inputResultName
private static Logger LOG
private static long serialVersionUID
Fields inherited from class com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
excludeMethods, includeMethods, log
Constructor Summary
Method Summary
protected  String doIntercept(ActionInvocation invocation)
          Intercept ActionInvocation and returns a inputResultName when action / field errors is found registered.
 void setInputResultName(String inputResultName)
          Set the inputResultName (result name to be returned when a action / field error is found registered).
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


private static final long serialVersionUID
See Also:
Constant Field Values


private static final Logger LOG


private static final Class[] EMPTY_CLASS_ARRAY


private String inputResultName
Constructor Detail


public DefaultWorkflowInterceptor()
Method Detail


public void setInputResultName(String inputResultName)
Set the inputResultName (result name to be returned when a action / field error is found registered). Default to Action.INPUT

inputResultName - what result name to use when there was validation error(s).


protected String doIntercept(ActionInvocation invocation)
                      throws Exception
Intercept ActionInvocation and returns a inputResultName when action / field errors is found registered.

Specified by:
doIntercept in class MethodFilterInterceptor
invocation - the action invocation
String result name

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