Package org.apache.struts2.result

# Class ActionChainResult

java.lang.Object
org.apache.struts2.result.ActionChainResult

All Implemented Interfaces:
  `Serializable`, `Result`

public class ActionChainResult extends Object implements Result
This result invokes an entire other action, complete with it's own interceptor stack and result. This result type takes the following parameters:

- actionName (default) - the name of the action that will be chained to
- namespace - used to determine which namespace the Action is in that we're chaining. If namespace is null, this defaults to the current namespace
- method - used to specify another method on target action to be invoked. If null, this defaults to execute method
- skipActions - (optional) the list of comma separated action names for the actions that could be chained to

Example:

     <package name="public" extends="struts-default">
         <!-- Chain creatAccount to login, using the default parameter -->
         <action name="createAccount" class="...">
             <result type="chain">login</result>
         </action>

         <action name="login" class="...">
             <!-- Chain to another namespace -->
             <result type="chain">
                 <param name="actionName">dashboard</param>
                 <param name="namespace">/secure</param>
             </result>
         </action>
     </package>

     <package name="secure" extends="struts-default" namespace="/secure">
         <action name="dashboard" class="...">
             <result>dashboard.jsp</result>
         </action>
     </package>

Author:
  Alexandru Popescu
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_PARAM`
  The result parameter name to set the name of the action to chain to.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ActionChainResult()`
  `ActionChainResult(String namespace, String actionName, String methodName)`
  `ActionChainResult(String namespace, String actionName, String methodName, String skipActions)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object o)`
  `void`
  `execute(ActionInvocation invocation)`
  Represents a generic interface for all action execution results.
  `static LinkedList<String>`
  `getChainHistory()`
  Get the XWork chain history.
  `ActionProxy`
  `getProxy()`
  `int`
  `hashCode()`
  `void`
  `setActionName(String actionName)`
  Set the action name.
  `void`
  `setActionProxyFactory(ActionProxyFactory actionProxyFactory)`
  `void`
  `setMethod(String method)`
  `void`
  `setNamespace(String namespace)`
  sets the namespace of the Action that we're chaining to.
  `void`
  `setSkipActions(String actions)`
  Set the list of actions to skip.
  `protected String`
  `translateVariables(String text)`

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

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

- ## Field Details

  - ### DEFAULT_PARAM

    public static final String DEFAULT_PARAM
    The result parameter name to set the name of the action to chain to.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ActionChainResult

    public ActionChainResult()

  - ### ActionChainResult

    public ActionChainResult(String namespace, String actionName, String methodName)

  - ### ActionChainResult

    public ActionChainResult(String namespace, String actionName, String methodName, String skipActions)

- ## Method Details

  - ### setActionProxyFactory

    public void setActionProxyFactory(ActionProxyFactory actionProxyFactory)
    Parameters:
      `actionProxyFactory` - the actionProxyFactory to set

  - ### setActionName

    public void setActionName(String actionName)
    Set the action name.
    Parameters:
      `actionName` - The action name.

  - ### setNamespace

    public void setNamespace(String namespace)
    sets the namespace of the Action that we're chaining to. if namespace is null, this defaults to the current namespace.
    Parameters:
      `namespace` - the name of the namespace we're chaining to

  - ### setSkipActions

    public void setSkipActions(String actions)
    Set the list of actions to skip. To test if an action should not throe an infinite recursion, only the action name is used, not the namespace.
    Parameters:
      `actions` - The list of action name separated by a white space.

  - ### setMethod

    public void setMethod(String method)

  - ### getProxy

    public ActionProxy getProxy()

  - ### getChainHistory

    public static LinkedList<String> getChainHistory()
    Get the XWork chain history. The stack is a list of `namespace/action!method` keys.
    Returns:
      the chain history as string list

  - ### execute

    public void execute(ActionInvocation invocation) throws Exception
    Description copied from interface: `Result`
    Represents a generic interface for all action execution results. Whether that be displaying a webpage, generating an email, sending a JMS message, etc.
    Specified by:
      `execute` in interface `Result`
    Parameters:
      `invocation` - the DefaultActionInvocation calling the action call stack
    Throws:
      `Exception` - can be thrown.

  - ### translateVariables

    protected String translateVariables(String text)

  - ### equals

    public boolean equals(Object o)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`