Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts.actions
Class EventDispatchAction

    java.lang.Object
      org.apache.struts.action.Action
          org.apache.struts.actions.BaseAction
              org.apache.struts.actions.DispatchAction
                  org.apache.struts.actions.EventDispatchAction

    public class EventDispatchAction

extends DispatchAction

An Action that dispatches to to one of the public methods that are named in the `parameter` attribute of the corresponding ActionMapping and matches a submission parameter. This is useful for developers who prefer to use many submit buttons, images, or submit links on a single form and whose related actions exist in a single Action class.

The method(s) must have the same signature (other than method name) of the standard Action.execute method.

To configure the use of this action in your `struts-config.xml` file, create an entry like this:

       <action path="/saveSubscription"
               type="org.example.SubscriptionAction"
               name="subscriptionForm"
              scope="request"
              input="/subscription.jsp"
          parameter="save,back,recalc=recalculate,default=save"/>

where `parameter` contains three possible methods and one default method if nothing matches (such as the user pressing the enter key).

For utility purposes, you can use the `key=value` notation to alias methods so that they are exposed as different form element names, in the event of a naming conflict or otherwise. In this example, the recalc button (via a request parameter) will invoke the `recalculate` method. The security-minded person may find this feature valuable to obfuscate and not expose the methods.

The default key is purely optional. If this is not specified and no parameters match the list of method keys, `null` is returned which means the `unspecified` method will be invoked.

The order of the parameters are guaranteed to be iterated in the order specified. If multiple buttons were accidently submitted, the first match in the list will be dispatched.

Since:
  Struts 1.2.9

Field Summary

Fields inherited from class org.apache.struts.actions.DispatchAction
`clazz, log, methods, types`

Fields inherited from class org.apache.struts.actions.BaseAction
`messages`

Fields inherited from class org.apache.struts.action.Action
`servlet`

Constructor Summary
`EventDispatchAction()`

Method Summary
`protected String` | `getMethodName(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, String parameter)` Returns the method name, given a parameter's value.
`protected ActionForward` | `unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)` Method which is dispatched to when there is no value for specified request parameter included in the request.

Methods inherited from class org.apache.struts.actions.DispatchAction
`cancelled, dispatchMethod, execute, getMethod, getParameter`

Methods inherited from class org.apache.struts.action.Action
`addErrors, addMessages, execute, generateToken, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### EventDispatchAction

    public EventDispatchAction()

Method Detail

### unspecified

    protected ActionForward unspecified(ActionMapping mapping,
                                        ActionForm form,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
                                 throws Exception

  Method which is dispatched to when there is no value for specified request parameter included in the request. Subclasses of `DispatchAction` should override this method if they wish to provide default behavior different than throwing a ServletException.

  Overrides:
    `unspecified` in class `DispatchAction`
  Parameters:
    `mapping` - The ActionMapping used to select this instance
    `form` - The optional ActionForm bean for this request (if any)
    `request` - The non-HTTP request we are processing
    `response` - The non-HTTP response we are creating
  Returns:
    The forward to which control should be transferred, or `null` if the response has been completed.
  Throws:
    `Exception` - if the application business logic throws an exception.

### getMethodName

    protected String getMethodName(ActionMapping mapping,
                                   ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response,
                                   String parameter)
                            throws Exception

  Returns the method name, given a parameter's value.

  Overrides:
    `getMethodName` in class `DispatchAction`
  Parameters:
    `mapping` - The ActionMapping used to select this instance
    `form` - The optional ActionForm bean for this request (if any)
    `request` - The HTTP request we are processing
    `response` - The HTTP response we are creating
    `parameter` - The `ActionMapping` parameter's name
  Returns:
    The method's name.
  Throws:
    `Exception` - if an error occurs.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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