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

    評論

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

    good...
    2009-02-24 21:28 | ci
    主站蜘蛛池模板: 亚洲av第一网站久章草| 亚洲精品免费网站| 亚洲精品理论电影在线观看| 亚洲AV电影院在线观看| 麻豆精品国产免费观看| 性无码免费一区二区三区在线| 亚洲AV无码XXX麻豆艾秋| 精品亚洲AV无码一区二区三区 | 久久久久国产亚洲AV麻豆 | 亚洲毛片网址在线观看中文字幕| 8090在线观看免费观看| 黄色网址免费在线观看| 在线观看亚洲免费| 亚洲精品久久无码av片俺去也| 亚洲av永久无码精品三区在线4| 亚洲黄色网址大全| 亚洲日韩精品一区二区三区| 亚洲人成电影网站国产精品| 四虎永久免费影院在线| 麻豆国产VA免费精品高清在线| 7723日本高清完整版免费| 91精品视频在线免费观看| 久久成人a毛片免费观看网站| 三上悠亚电影全集免费 | 亚洲综合网站色欲色欲| 一区国严二区亚洲三区| 深夜国产福利99亚洲视频| 国产免费AV片无码永久免费| 国产成人精品免费视频软件| 热99re久久精品精品免费| 暖暖在线日本免费中文| 国产精品无码免费视频二三区| 日韩免费视频观看| 国产成人无码免费视频97| 国产猛烈高潮尖叫视频免费| 国产成人免费a在线视频app| 夜色阁亚洲一区二区三区 | 久久精品免费网站网| 中文在线观看永久免费| 男女一进一出抽搐免费视频| 国产一级片免费看|