org.springframework.webflow.action
Class MultiAction

java.lang.Object
  extended by org.springframework.webflow.action.AbstractAction
      extended by org.springframework.webflow.action.MultiAction
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, Action
Direct Known Subclasses:
FormAction

public class MultiAction
extends AbstractAction

Action implementation that bundles two or more action execution methods into a single class. Action execution methods defined by subclasses must adhere to the following signature:

     public Event ${method}(RequestContext context) throws Exception;
 
When this action is invoked, by default the id of the calling action state state is treated as the action execution method name. Alternatively, the execution method name may be explicitly specified as a attribute of the calling action state.

For example, the following action state definition:

     <action-state id="search">
         <evaluate expression="searchAction.executeSearch"/>
         <transition on="success" to="results"/>
     </action-state>
 
... when entered, executes the method:
 public Event search(RequestContext context) throws Exception;
 

One use of the MultiAction is to centralize all command logic for a flow in one place. Another use is to centralize form setup and submit logic in one place, or CRUD (create/read/update/delete) operations for a single domain object in one place.

Author:
Keith Donald, Erwin Vervaet
See Also:
MultiAction.MethodResolver, DefaultMultiActionMethodResolver

Nested Class Summary
static interface MultiAction.MethodResolver
          Strategy interface used by the MultiAction to map a request context to the name of an action execution method.
 
Constructor Summary
MultiAction(Object target)
          Constructs a multi action that invokes methods on the specified target object.
 
Method Summary
 MultiAction.MethodResolver getMethodResolver()
          Get the strategy used to resolve action execution method names.
 void setMethodResolver(MultiAction.MethodResolver methodResolver)
          Set the strategy used to resolve action execution method names.
 
Methods inherited from class org.springframework.webflow.action.AbstractAction
afterPropertiesSet, execute, getEventFactorySupport
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiAction

public MultiAction(Object target)
Constructs a multi action that invokes methods on the specified target object. Note: invokable methods on the target must conform to the multi action method signature:
       public Event ${method}(RequestContext context) throws Exception;
 

Parameters:
target - the target of this multi action's invocations
Method Detail

getMethodResolver

public MultiAction.MethodResolver getMethodResolver()
Get the strategy used to resolve action execution method names.


setMethodResolver

public void setMethodResolver(MultiAction.MethodResolver methodResolver)
Set the strategy used to resolve action execution method names. Allows full control over the method resolution algorithm. Defaults to DefaultMultiActionMethodResolver.