<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

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

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

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

    雖然LookupDispatchAction類可以很好地處理擁有多個提交按鈕的Form,但是必須要和屬性文件相關聯,而且還得在getKeyMethodMap方法中進行keyAction方法的映射,使用起來十分不方便。從Struts1.2.9開始,加入了另一個用于處理多個提交動作的EventDispatchAction類。這個類也是DispatchAction的子類,它在使用上要比LookupDispatchAction類容易的多。EventDispatchAction類的基本原理是通過<action>元素的parameter屬性指定多個動作,中間用逗號(,)分隔。每個動作實際上就是<html:submit>標簽的property屬性值。這樣EventDispatchAction類就可以根據每個<html:submit>標簽的屬性值來確定用戶按的是哪個提交按鈕了。

    我們可以按如下三步來使用EventDispatchAction類。

    【第1步】實現EventDispatchAction的子類

    <samples工程目錄>\src\action目錄中建立一個MyEventDispatchAction.java文件,代碼如下:

      package action;

      
    import java.io.PrintWriter;
      
    import javax.servlet.http.*;
      
    import org.apache.struts.action.*;
      
    import org.apache.struts.actions.*;
      
      
    public class MyEventDispatchAction extends EventDispatchAction 
      {      
          
    // 處理print動作
          public ActionForward print(ActionMapping mapping, ActionForm form,
                  HttpServletRequest request, HttpServletResponse response)
          {
              
    try
              {
                  response.setCharacterEncoding(
    "GBK");
                  PrintWriter out 
    = response.getWriter();            
                  out.println(
    "打印成功!");
              }
              
    catch (Exception e)
              {
              }
              
    return null;
          } 
          
    // 處理save動作
          public ActionForward save(ActionMapping mapping, ActionForm form,
                  HttpServletRequest request, HttpServletResponse response)
          {
              
    try
              {
                  response.setCharacterEncoding(
    "GBK");
                  PrintWriter out 
    = response.getWriter();
                  out.println(
    "保存成功!");
              }
              
    catch (Exception e)
              {
              }
              
    return null;
          } 
      } 

    MyEventDispatchAction類中有兩個方法:printsave,分別用來處理property屬性值為“print”和“save”的<html:submit>標簽提交的請求動作。

    【第2步】配置EventDispatchAction

        打開struts-config.xml文件,在 <action-mappings>元素中加入如下的內容:
    <action name = "firstValidatorForm" path="/event" 
    type
    ="action.MyEventDispatchAction" validate="false" parameter="print,save"/>

    【第3步】實現有多個提交按鈕的JSP頁面

    Web根目錄中建立一個moreSubmit.jsp文件,代碼如下:

      <%@ page pageEncoding="GBK"%>
      
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
      
    <html>
        
    <head>
          
    <title>多提交演示</title>
        
    </head>
        
    <body>           
          
    <html:form action="event" >
             name:
    <html:text property="name" />&nbsp;&nbsp;<p>
                   
    <html:submit property="print" value="打印"/>
                   
    <html:submit property="save" value="保存"/>
          
    </html:form>  
        
    </body> 
      
    </html>
        在編寫moreSubmit.jsp文件時要注意,“打印”和“保存”按鈕的property屬性必須和<action>動作中的parameter參數值一致。也就是“print”和“save”。
        啟動Tomcat后,在IE中輸入如下的URL來測試程序:

    http://localhost:8080/samples/moreSubmit.jsp

        為了區別提交請求參數和其他參數,在<html:submit>標簽的property屬性值還可以有一個后綴“.x”(<action>元素的parameter屬性值仍然是“print, save”。如“打印”按鈕的代碼可以寫成如下形式:

    <html:submit property="print.x" value="打印"/>

    下一篇:Struts1.x系列教程(21):使用MappingDispatchAction類調用不同的Action方法



    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-24 15:07 銀河使者 閱讀(2385) 評論(1)  編輯  收藏 所屬分類: javaweb 原創struts1.x

    評論

    # re: Struts1.x系列教程(20):使用EventDispatchAction類處理一個form多個submit  回復  更多評論   

    good...
    2009-02-24 21:28 | ci
    主站蜘蛛池模板: 91在线视频免费观看| 亚洲黄片手机免费观看| 亚洲一区二区三区免费视频| 亚洲Av综合色区无码专区桃色| 日韩免费码中文在线观看| 国产精品免费看香蕉| 亚洲Av永久无码精品黑人| 国产免费啪嗒啪嗒视频看看| 免费无码一区二区| 国产偷国产偷亚洲高清日韩| 好湿好大好紧好爽免费视频| 亚洲亚洲人成综合网络| 久久青草免费91观看| 亚洲国产精品无码久久久| 毛片免费全部播放一级| 国产成人+综合亚洲+天堂| 激情97综合亚洲色婷婷五| 国产成人一区二区三区视频免费| 久久亚洲国产精品成人AV秋霞| 日韩视频在线精品视频免费观看| 亚洲日韩乱码中文字幕| 国产成人亚洲影院在线观看| 毛片在线全部免费观看| 亚洲一级毛片免费观看| 四虎精品亚洲一区二区三区| 免费播放在线日本感人片| 亚洲中文无码线在线观看| 国产又粗又长又硬免费视频| 久久九九久精品国产免费直播| 亚洲视频在线观看免费| 精品国产精品久久一区免费式| 高清永久免费观看| 亚洲香蕉久久一区二区| 亚洲精品国产va在线观看蜜芽| 97精品免费视频| 免费看黄福利app导航看一下黄色录像| 亚洲一区二区三区国产精品| 色影音免费色资源| 狠狠躁狠狠爱免费视频无码| 亚洲狠狠成人综合网| 久久九九亚洲精品|