熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Struts1.x系列教程(19):LookupDispatchAction類處理一個form多個

2013-11-23 20:07:13  來源: Java開源技術 

  有時在HTML form中需要提供多個提交按鈕這時LookupDispatchAction類就派上用場了LookupDispatchAction是DispatchAction的子類用於處理客戶端代碼中有一個Form含有多個提交按鈕的情況為了使用LookupDispatchAction首先來編寫客戶端代碼代碼如下

   <html:form action=myaction>
     
    <html:submit property=action>
        <bean:message key=submitprint />
    </html:submit>
    <html:submit property=action>
        <bean:message key=submitsave />
    </html:submit>
</html:form>

  其中submitprint和submitsave是屬性文件中的keyaction實際上是提交按鈕的name屬性值在提交時會將property和<beanmessage key=…… />作為請求參數和參數值傳給Struts動作如save按鈕被單擊時請求//localhost/……/myactiondo?action=save其中save為submitsave在屬性文件中對應的屬性值也就是說submitsave = save

  接下來我們編寫一個LookupDispatchAction的子類代碼如下

   package action;
import orgapachestrutsactionsLookupDispatchAction;
 
  public class MyLookupDispatchAction extends LookupDispatchAction
  {
      //  為了方便描述在這裡未使用屬性文件只是直接將key和value的映射添加到Map對象中
      //  讀者可以在getKeyMethodMap方法中從屬性文件中讀取相應的keyvalue對
      //  來添加到Map對象中
      protected Map getKeyMethodMap()
      {
          Map m = new HashMap();
          mput(submitprint print);
          mput(submitsave save);
          return m;
      }
      public ActionForward print (ActionMapping mapping ActionForm form
              HttpServletRequest request HttpServletResponse response)
      {
          // 處理print代碼
      } 
      public ActionForward save(ActionMapping mapping ActionForm form
              HttpServletRequest request HttpServletResponse response)
      {
          // 處理save代碼
      } 
  }

  在編寫LookupDispatchAction的子類時要注意必須實現getKeyMethodMap方法在這個方法中需要進行key和Action方法的映射下面的代碼用來配置MyLookupDispatchAction

   <action path=/moresubmit type=actionMyLookupDispatchAction parameter=action />

  其中parameter屬性指定了請求URL中由提交按鈕生成的請求參數名


From:http://tw.wingwit.com/Article/program/Java/ky/201311/27971.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.