LookupDispatchAction (Apache Struts API Documentation)
Keywords: org.apache.struts.actions.LookupDispatchAction,LookupDispatchAction class

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 LookupDispatchAction

    java.lang.Object
      |
      +--org.apache.struts.action.Action
            |
            +--org.apache.struts.actions.DispatchAction
                  |
                  +--org.apache.struts.actions.LookupDispatchAction

public abstract class LookupDispatchAction
extends DispatchAction

An abstract Action that dispatches to the subclass mapped `execute` method. This is useful in cases where an HTML form has multiple submit buttons with the same name. The button name is specified by the `parameter` property of the corresponding ActionMapping. To configure the use of this action in your `struts-config.xml` file, create an entry like this:

       <action path="/test"
               type="org.example.MyAction"
               name="MyForm"
              scope="request"
              input="/test.jsp"
          parameter="action"/>

which will use the value of the request parameter named "action" to locate the corresponding key in ApplicationResources. For example, you might have the following ApplicationResources.properties:

        button.add=Add Record
        button.delete=Delete Record

And your JSP would have the following format for submit buttons:

       <html:form action="/test">
        <html:submit property="action">
          <bean:message key="button.add"/>
        </html:submit>
        <html:submit property="action">
          <bean:message key="button.delete"/>
        </html:submit>
      </html:form>

Your subclass must implement both getKeyMethodMap and the methods defined in the map. An example of such implementations are:

###

###

###

###

###

###

      protected Map getKeyMethodMap() {
          Map map = new HashMap();
          map.put("button.add", "add");
          map.put("button.delete", "delete");
          return map;
      }

      public ActionForward add(ActionMapping mapping,
              ActionForm form,
              HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException {
          // do add
          return mapping.findForward("success");
      }

      public ActionForward delete(ActionMapping mapping,
              ActionForm form,
              HttpServletRequest request,
              HttpServletResponse response)
              throws IOException, ServletException {
          // do delete
          return mapping.findForward("success");
      }

      Notes - If duplicate values exist for the keys returned by
      getKeys, only the first one found will be returned. If no corresponding key
      is found then an exception will be thrown.

    Author:
      Erik Hatcher, Scott Carlson, David Graham

    Field Summary

    protected  java.util.Map
    keyMethodMap

              Resource key to method name lookup.

    protected  java.util.Map
    localeMap

              Reverse lookup map from resource value to resource key.

    Fields inherited from class org.apache.struts.actions.DispatchAction

    clazz, log, messages, methods, types

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

    ACTION_SERVLET_KEY, APPLICATION_KEY, DATA_SOURCE_KEY, defaultLocale, ERROR_KEY, EXCEPTION_KEY, FORM_BEANS_KEY, FORWARDS_KEY, LOCALE_KEY, MAPPING_KEY, MAPPINGS_KEY, MESSAGE_KEY, MESSAGES_KEY, MULTIPART_KEY, PLUG_INS_KEY, REQUEST_PROCESSOR_KEY, servlet, SERVLET_KEY, TRANSACTION_TOKEN_KEY

    Constructor Summary

    LookupDispatchAction()

    Method Summary

     ActionForward
    execute(ActionMapping mapping,
            ActionForm form,
            javax.servlet.http.HttpServletRequest request,
            javax.servlet.http.HttpServletResponse response)

              Process the specified HTTP request, and create the corresponding HTTP
      response (or forward to another web component that will create it).

    protected abstract  java.util.Map
    getKeyMethodMap()

              Provides the mapping from resource key to method name.

    private  java.util.Map
    initLookupMap(javax.servlet.http.HttpServletRequest request,
                  java.util.Locale userLocale)

              This is the first time this Locale is used so build the reverse lookup Map.

    Methods inherited from class org.apache.struts.actions.DispatchAction

    dispatchMethod, getMethod, unspecified

    Methods inherited from class org.apache.struts.action.Action

    execute, generateToken, getDataSource, getDataSource, getLocale, getResources, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, perform, perform, resetToken, saveErrors, saveMessages, saveToken, setLocale, setServlet, toHex

    Methods inherited from class java.lang.Object

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

    Field Detail

    localeMap

    protected java.util.Map localeMap

    Reverse lookup map from resource value to resource key.

    keyMethodMap

    protected java.util.Map keyMethodMap

    Resource key to method name lookup.

    Constructor Detail

    LookupDispatchAction

    public LookupDispatchAction()

    Method Detail

    execute

    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response)
                          throws java.lang.Exception

    Process the specified HTTP request, and create the corresponding HTTP
      response (or forward to another web component that will create it).
      Return an ActionForward instance describing where and how
      control should be forwarded, or null if the response has
      already been completed.

    Overrides:execute in class DispatchAction

    Parameters:mapping - The ActionMapping used to select this instancerequest - The HTTP request we are processingresponse - The HTTP response we are creatingform - The optional ActionForm bean for this request (if any)
    Returns:Describes where and how control should be forwarded.
    Throws:
    java.lang.Exception - if an error occurs

    initLookupMap

    private java.util.Map initLookupMap(javax.servlet.http.HttpServletRequest request,
                                        java.util.Locale userLocale)

    This is the first time this Locale is used so build the reverse lookup Map.
     Search for message keys in all configured MessageResources for
     the current module.

    getKeyMethodMap

    protected abstract java.util.Map getKeyMethodMap()

    Provides the mapping from resource key to method name.

    Returns:Resource key / method name map.

          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-2003 - Apache Software Foundation