public class RestWorkflowInterceptor extends MethodFilterInterceptor
Copied from the DefaultWorkflowInterceptor
, this interceptor adds support
for error handling of Restful operations. For example, if an validation error is discovered, a map of errors
is created and processed to be returned, using the appropriate content handler for rendering the body.
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.
<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>
ConditionalInterceptor.LegacyAdapter
excludeMethods, includeMethods
Constructor and Description |
---|
RestWorkflowInterceptor() |
Modifier and Type | Method and Description |
---|---|
protected String |
doIntercept(ActionInvocation invocation)
Intercept
ActionInvocation and processes the errors using the ContentTypeHandler
appropriate for the request. |
void |
setContentTypeHandlerManager(ContentTypeHandlerManager mgr) |
void |
setEditMethodName(String editMethodName) |
void |
setInputResultName(String inputResultName)
Set the
inputResultName (result name to be returned when
a action / field error is found registered). |
void |
setNewMethodName(String newMethodName) |
void |
setPostMethodName(String postMethodName) |
void |
setPutMethodName(String putMethodName) |
void |
setValidationFailureStatusCode(String code) |
applyInterceptor, getExcludeMethodsSet, getIncludeMethodsSet, intercept, setExcludeMethods, setIncludeMethods
intercept, shouldIntercept, shouldIntercept
destroy, init, setDisabled
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
adapt
adapt
destroy, init
public void setPostMethodName(String postMethodName)
public void setEditMethodName(String editMethodName)
public void setNewMethodName(String newMethodName)
public void setPutMethodName(String putMethodName)
public void setValidationFailureStatusCode(String code)
public void setContentTypeHandlerManager(ContentTypeHandlerManager mgr)
public void setInputResultName(String inputResultName)
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
ActionInvocation
and processes the errors using the ContentTypeHandler
appropriate for the request.doIntercept
in class MethodFilterInterceptor
Exception
Copyright © 2000–2024 Apache Software Foundation. All rights reserved.