| 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object
  |
  +--org.apache.struts.action.Action
        |
        +--org.apache.struts.actions.DispatchAction
              |
              +--org.apache.struts.actions.LookupDispatchAction
  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.
| 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.  | 
| 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 | 
protected java.util.Map localeMap
protected java.util.Map keyMethodMap
| Constructor Detail | 
public LookupDispatchAction()
| Method Detail | 
public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.lang.Exception
ActionForward instance describing where and how
  control should be forwarded, or null if the response has
  already been completed.
execute in class DispatchActionmapping - 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)
java.lang.Exception - if an error occursprotected abstract java.util.Map getKeyMethodMap()
  | 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||