com.opensymphony.xwork2
Class ActionChainResult

java.lang.Object
  extended by com.opensymphony.xwork2.ActionChainResult
All Implemented Interfaces:
Result, Serializable

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:

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
private  String actionName
           
private  ActionProxyFactory actionProxyFactory
           
private static String CHAIN_HISTORY
          The action context key to save the chain history.
static String DEFAULT_PARAM
          The result parameter name to set the name of the action to chain to.
private static Logger LOG
           
private  String methodName
           
private  String namespace
           
private  ActionProxy proxy
           
static String SKIP_ACTIONS_PARAM
          The result parameter name to set the name of the action to chain to.
private  String skipActions
          The list of actions to skip.
 
Constructor Summary
ActionChainResult()
           
ActionChainResult(String namespace, String actionName, String methodName)
           
ActionChainResult(String namespace, String actionName, String methodName, String skipActions)
           
 
Method Summary
private  void addToHistory(String namespace, String actionName, String methodName)
           
 boolean equals(Object o)
           
 void execute(ActionInvocation invocation)
          Represents a generic interface for all action execution results.
static LinkedList getChainHistory()
          Get the XWork chain history.
 ActionProxy getProxy()
           
 int hashCode()
           
private  boolean isInChainHistory(String namespace, String actionName, String methodName)
           
private  String makeKey(String namespace, String actionName, String methodName)
           
 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.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

private static final Logger LOG

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

CHAIN_HISTORY

private static final String CHAIN_HISTORY
The action context key to save the chain history.

See Also:
Constant Field Values

SKIP_ACTIONS_PARAM

public static final String SKIP_ACTIONS_PARAM
The result parameter name to set the name of the action to chain to.

See Also:
Constant Field Values

proxy

private ActionProxy proxy

actionName

private String actionName

namespace

private String namespace

methodName

private String methodName

skipActions

private String skipActions
The list of actions to skip.


actionProxyFactory

private ActionProxyFactory actionProxyFactory
Constructor Detail

ActionChainResult

public ActionChainResult()

ActionChainResult

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

ActionChainResult

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

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 getChainHistory()
Get the XWork chain history. The stack is a list of namespace/action!method keys.


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.

equals

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

hashCode

public int hashCode()
Overrides:
hashCode in class Object

isInChainHistory

private boolean isInChainHistory(String namespace,
                                 String actionName,
                                 String methodName)

addToHistory

private void addToHistory(String namespace,
                          String actionName,
                          String methodName)

makeKey

private String makeKey(String namespace,
                       String actionName,
                       String methodName)


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