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

    評論

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

    good...
    2009-02-24 21:28 | ci
    主站蜘蛛池模板: 可以免费观看一级毛片黄a| 久香草视频在线观看免费| 成人免费ā片在线观看| 日韩午夜理论免费TV影院| 野花高清在线观看免费完整版中文| 亚洲国产成人影院播放| 亚洲最大的成人网| 国产成人免费网站| 亚洲色av性色在线观无码| 青青草原1769久久免费播放| 国产亚洲精品a在线无码| 国内精品免费视频精选在线观看 | 亚洲精品av无码喷奶水糖心| 最新69国产成人精品免费视频动漫| 亚洲综合精品成人| 免费观看日本污污ww网站一区| 亚洲高清免费视频| 亚洲va在线va天堂va不卡下载| 久久精品无码专区免费东京热| 亚洲成aⅴ人在线观看| 最新免费jlzzjlzz在线播放| 精品久久久久久亚洲综合网| 亚洲伊人久久综合中文成人网| 99久久99这里只有免费的精品| 亚洲精品第一国产综合精品| 天天摸夜夜摸成人免费视频 | 国产午夜无码视频免费网站| 色婷婷综合缴情综免费观看| 亚洲精品无码乱码成人| 无码人妻精品中文字幕免费东京热| 亚洲欧美aⅴ在线资源| 久久久久亚洲精品中文字幕| 中文字幕成人免费视频| 中文字幕亚洲综合久久综合| 亚洲一区二区三区无码影院| 亚洲一级毛片免费看| 无套内谢孕妇毛片免费看看| 亚洲电影一区二区| 四虎永久精品免费观看| 色猫咪免费人成网站在线观看| 亚洲中文字幕无码mv|