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

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

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

    隨筆-10  評(píng)論-22  文章-1  trackbacks-0
    Struts中有四種不同Action,分別如下:
    1.Action
    2.DispatchAction
    3.LookupDispatchAction
    4.MappingDispatchAction
    關(guān)于Action在Struts中的工作流程,這里我就不多說了,只針對(duì)各種不同的Action詳解
        第一種Action:是最普通、也是我們最先接觸的一種,但它僅支持一種業(yè)務(wù)方法,Action中只能允許有一個(gè)execute(),所有比較單一,有局限性,平時(shí)的項(xiàng)目中也用的少,或者說,它針對(duì)的是一個(gè)表單,一個(gè)Submit
    關(guān)于用法:Action中就一個(gè)execute(),而strut-config.xml也只需配置一具最普通的<action/>節(jié)點(diǎn),就夠了
    <!-- Action -->
        
    <action
          attribute
    ="loginForm"
          name
    ="loginForm"
          path
    ="/login"
          scope
    ="request"
          type
    ="org.svse.struts.action.LoginAction">
          
    <forward name="ok" path="/ok.jsp"></forward>
          
    <forward name="error" path="/error.jsp"></forward>      
          
    </action>
        第二種DispatchAction:這是我們?cè)谄綍r(shí)的學(xué)習(xí)和項(xiàng)目中用的最多的一種,因?yàn)樗С侄鄠€(gè)業(yè)務(wù)方法的擴(kuò)展,使用起來也方便,或者說,它針對(duì)的是一個(gè)表單,多個(gè)Button
    關(guān)于用法:Action中需要幾個(gè)業(yè)務(wù)方法,就復(fù)制幾個(gè)execute(),然后改名即可,比如我們做加、減、乘、除,有四個(gè)方法,即:add(),sub(),mul(),div();而struts-config.xml中也只需配一個(gè)<action/>節(jié)點(diǎn);當(dāng)然,在涉及到有的業(yè)務(wù)是否需要表單驗(yàn)證時(shí),可以單獨(dú)再添加節(jié)點(diǎn)嘛
    <!-- DispatchAction -->
        
    <action
          attribute
    ="calForm"
          name
    ="calForm"
          parameter
    ="method"
          path
    ="/cal"
          scope
    ="request"
          type
    ="org.svse.struts.action.CalAction">
          
    <forward name="result" path="/cal_result.jsp"></forward>
          
    </action>
    parameter參數(shù)對(duì)應(yīng)的就是我們的業(yè)務(wù)方法了,在三種DispatchAction中都要用到它,因?yàn)橛辛怂?就可實(shí)現(xiàn)多業(yè)務(wù)的調(diào)用;
    哪我們?cè)谝晥D層,是如何調(diào)用的呢?很簡單:/cal.do?method=方法名(add、sub)
    <script type="text/javascript">
            function dosubmit(url)
    {
                var myform 
    = document.myform;
                myform.action 
    = url;
                myform.submit();
            }

        
    </script>
      
    </head>
      
      
    <body>
      
    <!-- 一個(gè)表單多個(gè)按鈕 -->
      
    <form method="post" name="myform">
           第一個(gè)數(shù):
    <input type="text" name="num1"><br>
           第二個(gè)數(shù):
    <input type="text" name="num2"><br>
           
    <input type="button" value="" onclick="dosubmit('cal.do?method=add')">
           
    <input type="button" value="" onclick="dosubmit('cal.do?method=sub')">
        
    <input type="button" value="" onclick="dosubmit('cal.do?method=mul')">
           
    <input type="button" value="" onclick="dosubmit('cal.do?method=div')"> 
      
    </form>
      
    </body>
        第三種LookupDispatchAction:此種Action恐怕是我們平時(shí)用的最少的一種了,盡管它也支持多業(yè)務(wù),或者說,它針對(duì)的是一個(gè)表單,多個(gè)Submit;
    但用起來非常麻煩,需要struts標(biāo)簽,資源文件,Action中要Map集合;這里就大概說一下
    Actoin中業(yè)務(wù)方法跟上面一樣,只不過多一個(gè)包含Map的方法:
    //通過資源文件的key(button.add),來找到業(yè)務(wù)方法add(),sub()
        protected Map getKeyMethodMap() {
            Map map 
    = new HashMap();
            map.put(
    "button.add","add");
            map.put(
    "button.sub","sub");
            
    return map;
        }
    資源文件:
    # Resources for parameter 'org.svse.struts.ApplicationResources'
    # Project ch03
    button.add
    =add
    button.sub
    =sub
    struts-config.xml也跟上面一樣,根據(jù)method來找;
    哪視圖組件如何來調(diào)用呢?
    <!-- 一個(gè)表單多個(gè)提交 -->
        
    <form action="cal2.do" method="post">
              num1:
    <input type="text" name="num1"/><br>
              num2:
    <input type="text" name="num2"/><br>
              
    <html:submit property="method">
                  
    <bean:message key="button.add"/>
              
    </html:submit>
              
    <html:submit property="method">
                  
    <bean:message key="button.sub"/>
              
    </html:submit>
        
    <form>
    怎么樣夠麻煩的吧。。。
        第四種MappingDispatchAction:我自認(rèn)為它比DispatchAction差不多好用,只是它夠靈活(這里針對(duì)<action/>節(jié)點(diǎn),想咋配咋配),或者說,它針對(duì)的是多個(gè)表單,多個(gè)Submit;
    關(guān)于用法,也比較簡單:
    Action中的業(yè)務(wù)實(shí)現(xiàn)跟DispatchAction一樣,strut-config.xml則要靈活些,針對(duì)每一個(gè)業(yè)務(wù)方法,配一個(gè)<action/>節(jié)點(diǎn):
    <!-- MappingDispatchAction -->
        
    <!-- add -->
        
    <action
          attribute
    ="calForm"
          name
    ="calForm"
          parameter
    ="add"
          path
    ="/add"
          scope
    ="request"
          type
    ="org.svse.struts.action.Cal3Action">
          
    <forward name="result" path="/cal_result.jsp" />
        
    </action>
        
    <!-- sub -->
        
    <action
          attribute
    ="calForm"
          name
    ="calForm"
          parameter
    ="sub"
          path
    ="/sub"
          scope
    ="request"
          type
    ="org.svse.struts.action.Cal3Action">
          
    <forward name="result" path="/cal_result.jsp" />
        
    </action>
    視圖組件的調(diào)用就很能夠方便了:直接跟/path路徑名.do:
    <form action="add.do" method="post">
            num1:
    <input type="text" name="num1"><br>
            num2:
    <input type="text" name="num2"><br>
            
    <input type="submit" value="">
        
    </form>
    Struts中四種Action用法基本完畢,此純屬本人在學(xué)習(xí)過程中自己的總結(jié),若有不當(dāng)之處,愿不令賜教!!!
    posted on 2009-03-16 10:43 獨(dú)孤行 閱讀(2017) 評(píng)論(7)  編輯  收藏 所屬分類: Struts

    評(píng)論:
    # re: 四種Action詳解 2009-03-16 13:28 | 妖嬈盛唐
    我也在學(xué)習(xí)Struts,不過比你學(xué)得淺好多……

    只指正最后一句的漢語錯(cuò)誤:“愿不令賜教”當(dāng)寫作“愿不吝賜教”


    另:最好寫作“望不吝賜教”比較好點(diǎn),“愿”通常指自己愿意……
      回復(fù)  更多評(píng)論
      
    # re: 四種Action詳解 2009-03-16 15:52 | 獨(dú)孤行
    感謝指教,我的語言水平有限哦,上中學(xué)那會(huì),經(jīng)常不及格的
      回復(fù)  更多評(píng)論
      
    # re: 四種Action詳解[未登錄] 2009-10-10 18:01 | xx
    謝啦~~  回復(fù)  更多評(píng)論
      
    # re: 四種Action詳解[未登錄] 2011-05-11 09:28 | zz
    # re: 四種Action詳解 2012-08-24 16:37 | 啊啊啊啊
    啊啊啊啊啊  回復(fù)  更多評(píng)論
      
    # re: 四種Action詳解[未登錄] 2012-08-24 16:38 | 1
    # re: 四種Action詳解[未登錄] 2012-08-24 16:38 | 1
    @啊啊啊啊
    1111  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲男人天堂av| 国产特级淫片免费看| 高清一区二区三区免费视频| 好湿好大好紧好爽免费视频| 免费国产在线精品一区| 狠狠热精品免费观看| 特级av毛片免费观看| 边摸边脱吃奶边高潮视频免费| 婷婷亚洲综合一区二区| 免费一区二区无码视频在线播放| 日本免费精品一区二区三区 | 亚洲AⅤ永久无码精品AA| 国产精品免费一级在线观看| 国产在线不卡免费播放| 亚洲国产一区视频| 综合亚洲伊人午夜网| 亚洲av无码精品网站| 久久久久亚洲Av无码专| 亚洲1234区乱码| 日韩色日韩视频亚洲网站| 色老头综合免费视频| 一个人免费视频在线观看www | 亚洲精品成a人在线观看夫| 久久亚洲AV成人无码国产最大| 精品亚洲视频在线| 国产久爱免费精品视频| 久久精品免费视频观看| 嫖丰满老熟妇AAAA片免费看| 暖暖在线日本免费中文| 亚洲日韩国产一区二区三区| 亚洲AV第一页国产精品| 亚洲冬月枫中文字幕在线看| 亚洲AV成人无码网天堂| 成人午夜免费视频| 久久不见久久见免费视频7| 成**人免费一级毛片| 爱情岛论坛网亚洲品质自拍| 久久亚洲国产精品五月天| 亚洲人成77777在线播放网站不卡| 无码亚洲成a人在线观看| 中文字幕在线免费看|