org.apache.struts2.rest

## Class RestWorkflowInterceptor

- java.lang.Object
- - org.apache.struts2.interceptor.AbstractInterceptor
  - - com.opensymphony.xwork2.interceptor.AbstractInterceptor
    - - com.opensymphony.xwork2.interceptor.MethodFilterInterceptor
      - - org.apache.struts2.rest.RestWorkflowInterceptor

- All Implemented Interfaces:
    Serializable, ConditionalInterceptor, Interceptor

      public class RestWorkflowInterceptor
      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.

  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.

  Interceptor parameters:
  - inputResultName - Default to "input". Determine the result name to be returned when an action / field error is found.
  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>

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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.opensymphony.xwork2.interceptor.ConditionalInterceptor

      `ConditionalInterceptor.LegacyAdapter`

  - ### Field Summary

    - ### Fields inherited from class com.opensymphony.xwork2.interceptor.MethodFilterInterceptor

      `excludeMethods, includeMethods`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RestWorkflowInterceptor()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    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)`

    - ### Methods inherited from class com.opensymphony.xwork2.interceptor.MethodFilterInterceptor

      `applyInterceptor, applyInterceptor, doIntercept, getExcludeMethodsSet, getIncludeMethodsSet, intercept, setExcludeMethods, setIncludeMethods`

    - ### Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor

      `intercept, shouldIntercept, shouldIntercept`

    - ### Methods inherited from class org.apache.struts2.interceptor.AbstractInterceptor

      `destroy, init, setDisabled`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.opensymphony.xwork2.interceptor.ConditionalInterceptor

      `adapt`

    - ### Methods inherited from interface com.opensymphony.xwork2.interceptor.Interceptor

      `adapt`

    - ### Methods inherited from interface org.apache.struts2.interceptor.Interceptor

      `destroy, init`

- - ### Constructor Detail

    - #### RestWorkflowInterceptor

          public RestWorkflowInterceptor()

  - ### Method Detail

    - #### setPostMethodName

          public void setPostMethodName(String postMethodName)

    - #### setEditMethodName

          public void setEditMethodName(String editMethodName)

    - #### setNewMethodName

          public void setNewMethodName(String newMethodName)

    - #### setPutMethodName

          public void setPutMethodName(String putMethodName)

    - #### setValidationFailureStatusCode

          public void setValidationFailureStatusCode(String code)

    - #### setContentTypeHandlerManager

          public void setContentTypeHandlerManager(ContentTypeHandlerManager mgr)

    - #### setInputResultName

          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`
      Parameters:
        `inputResultName` - what result name to use when there was validation error(s).

    - #### doIntercept

          protected String doIntercept(ActionInvocation invocation)
                                throws Exception

      Intercept `ActionInvocation` and processes the errors using the `ContentTypeHandler` appropriate for the request.
      Specified by:
        `doIntercept` in class `MethodFilterInterceptor`
      Returns:
        String result name
      Throws:
        `Exception`

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.