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

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

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

    紙飛機

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      22 隨筆 :: 28 文章 :: 30 評論 :: 0 Trackbacks

    Struts DispatchAction 的使用



    紙飛機
    JAVA 學習筆記   英文名 : Steven Wang    QQ 63001184     郵箱: jxhkwhy@126.com                              [ 原創 ] 

     

    今天在看一個 Struts 代碼時,發現 Action 類繼承的父類為 DispatchAction ,于是找了找資料研究了下 DispatchAction 類,現總結如下:

    DispatchAction Struts1.1 中的一個類,它的父類是 Action ,它的作用就在于將多個功能相似的業務邏輯放在同一個 Action 中實現,各個業務邏輯通過傳入不同的參數來決定執行哪個操作方法

    通常在 Action 中我們都是通過 execute 方法來處理業務邏輯及頁面轉向,一個 Action 只能完成一種業務邏輯處理 , 當然我們也可以在頁面插入一個隱藏的變量,然后在 Action execute 方法中通過判斷這個隱藏變量的值來決定調用哪個方法,也可以達到同一個 Action 來處理多種業務邏輯,可是這樣的話想一想肯定會造成頁面代碼的增加及影響頁面代碼的可讀性 .

    看一看 DispatchAction 是如何實現的

    比如對一個用戶對象來說,存在增加,刪除,修改的操作,首先創建一個繼承 DispatchAction UserAction 類,

    然后將 addUser,delUser,updateUser 這些方法寫在這個類里面,代碼如下:

    package com.why.struts.action;

     

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

     

    import org.apache.struts.action.ActionForm;

    import org.apache.struts.action.ActionForward;

    import org.apache.struts.action.ActionMapping;

    import org.apache.struts.actions.DispatchAction;

     

    import com.why.Constant;

    import com.why.struts.form.AddUserForm;

    import com.why.struts.form.LoginForm;

     

    public class UserAction extends DispatchAction

    {

        public ActionForward addUser (ActionMapping mapping,ActionForm form,

                HttpServletRequest request,HttpServletResponse response) throws Exception

        {

                 // 增加用戶業務的邏輯

                return mapping.findForward(Constant. FORWARD_ADD );

        }

       

        public ActionForward delUser(ActionMapping mapping,ActionForm form,

                HttpServletRequest request,HttpServletResponse response) throws Exception

        {

                 // 刪除用戶業務的邏輯

                return mapping.findForward(Constant. FORWARD_SUCCESS );

        }

     

        public ActionForward updateUser(ActionMapping mapping,ActionForm form,

                HttpServletRequest request,HttpServletResponse response) throws Exception

        {

                 // 更新用戶業務的邏輯

                return mapping.findForward(Constant. FORWARD_SUCCESS );

        }

    }

    如何實現這些不同方法的調用呢 ? 那就是要在 struts-config.xml 文件中更改 action-mapping 的配置,如下:

    < action-mappings >

        < action

          attribute = "addUserForm"

          input = "/addUser.jsp"

          name = "addUserForm"

          parameter="method"

          path = "/addUser"

          scope = "request"

          type="com.why.struts.action.UserAction" >

        </ action >

        < action

          attribute = "delUserForm"

          input = "/delUser.jsp"

          name = "delUserForm"

          parameter="method"

          path = "/delUser"

          scope = "request"

          type="com.why.struts.action.UserAction" />

    < action

          attribute = "updateUserForm"

          input = "/updateUser.jsp"

          name = "updateUserForm"

          parameter="method"

          path = "/updateUser"

          scope = "request"

          type="com.why.struts.action.UserAction" />

      </ action-mappings >

    可以看到每個 <action  /> 中都增加了 parameter=" " 項,這個值可以隨便命名,如上面命名為 metho d ,用來接收頁面傳來的參數

    如下為頁面的提交,   注意:對應 <action  /> 中的 parameter , 對應 UserAction 類中的方法名

    AddUser.jsp

    <html:link href="addUser.do?method=addUser">Add User</html:link>

    DelUser.jsp

    <html:link href="delUser.do?method=delUser">Add User</html:link>

    UpdateUser.jsp

    <html:link href="updateUser.do?method=updateUser">Add User</html:link>

     

     

    posted on 2007-01-21 21:43 紙飛機 閱讀(4218) 評論(2)  編輯  收藏

    評論

    # re: Struts:DispatchAction的使用 2009-01-16 21:46 viralpatel.net@gmail.com
    Hi,
    See this tutorial for DispatchAction example in Struts.
    http://viralpatel.net/blogs/2009/01/struts-dispatch-action-tutorial-with-example-in-eclipse.html  回復  更多評論
      

    # re: Struts:DispatchAction的使用 2009-07-10 20:13 showMe
    你的這個好象是MappingDispatchAction的用法吧?DispatchAction只能有一個訪問路徑,ActionServlet決定調用哪個方法,取決于JSP頁面中所提供的一個參數的名稱的值,不知道我說的對不對  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 婷婷国产偷v国产偷v亚洲| 亚洲日韩中文字幕在线播放| 亚洲国产成人久久精品影视| a毛片在线免费观看| 亚洲综合色自拍一区| 成人午夜影视全部免费看| 亚洲国产婷婷香蕉久久久久久| 黄页网站在线免费观看| 亚洲国产aⅴ综合网| 免费一级毛片在线播放视频免费观看永久| 免费看香港一级毛片| 精品特级一级毛片免费观看| 免费一级成人毛片| caoporm碰最新免费公开视频| 亚洲情侣偷拍精品| 免费国产午夜高清在线视频| 亚洲一区二区三区高清| 69堂人成无码免费视频果冻传媒| 久久亚洲最大成人网4438| 色吊丝最新永久免费观看网站| 久久精品国产亚洲av天美18| 国产成人精品久久亚洲| 免费久久人人爽人人爽av| 亚洲视频国产视频| 天天天欲色欲色WWW免费| 一级特黄色毛片免费看| 亚洲av中文无码乱人伦在线播放| 亚洲一区二区三区免费在线观看| 亚洲欧美日韩中文字幕在线一区| 亚洲国产成人精品91久久久| 日本高清高色视频免费 | 亚洲综合AV在线在线播放| 精品亚洲永久免费精品| 亚洲中文字幕无码av在线| 免费在线观看污网站| 日韩免费观看一区| 亚洲熟妇久久精品| 国产亚洲精品精华液| 毛片在线看免费版| 国产情侣久久久久aⅴ免费| 亚洲精品视频在线观看视频|