隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數據加載中……

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

          本文為原創,如需轉載,請注明作者和出處,謝謝!

          上一篇:Struts1.x系列教程(18):使用DispatchAction類調用多個Action方法  

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

          <html:form action="myaction">
               
             
          <html:submit property="action">
                 
          <bean:message key="submit.print" />
             
          </html:submit>
             
          <html:submit property="action">
                 
          <bean:message key="submit.save" />
             
          </html:submit>
          </html:form>

          其中submit.printsubmit.save是屬性文件中的key。action實際上是提交按鈕的name屬性值。在提交時,會將property<bean:message key="..." />作為請求參數和參數值傳給Struts動作。如save按鈕被單擊時,請求URLhttp://localhost:8080/.../myaction.do?action=save。其中savesubmit.save在屬性文件中對應的屬性值,也就是說submit.save = save

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

          package action;
          import org.apache.struts.actions.LookupDispatchAction;
           
            
          public class MyLookupDispatchAction extends LookupDispatchAction
            {
                
          //  為了方便描述,在這里未使用屬性文件,只是直接將key和value的映射添加到Map對象中
                
          //  讀者可以在getKeyMethodMap方法中從屬性文件中讀取相應的key-value對
                
          //  來添加到Map對象中
                protected Map getKeyMethodMap()
                {
                    Map m 
          = new HashMap();
                    m.put(
          "submit.print""print");
                    m.put(
          "submit.save""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方法,在這個方法中需要進行keyAction方法的映射。下面的代碼用來配置MyLookupDispatchAction

          <action path="/moresubmit" type="action.MyLookupDispatchAction" parameter="action" />

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

          下一篇:
          Struts1.x系列教程(20):使用EventDispatchAction類處理一個form多個submit





          Android開發完全講義(第2版)(本書版權已輸出到臺灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2009-02-23 21:34 銀河使者 閱讀(2810) 評論(0)  編輯  收藏 所屬分類: java 、web 原創struts1.x

          主站蜘蛛池模板: 蓝田县| 鹤峰县| 济源市| 秀山| 灵寿县| 遵义县| 浮梁县| 石屏县| 手机| 昌邑市| 英山县| 开鲁县| 耒阳市| 永善县| 青铜峡市| 永福县| 和硕县| 灵丘县| 阿尔山市| 高淳县| 荆门市| 肥东县| 达尔| 临洮县| 崇州市| 五大连池市| 翁源县| 江永县| 友谊县| 新龙县| 文成县| 茂名市| 临夏县| 固安县| 江陵县| 洛浦县| 沧源| 河东区| 涞水县| 新干县| 大邑县|