<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頁面中所提供的一個參數的名稱的值,不知道我說的對不對  回復  更多評論
      


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


    網站導航:
     
    主站蜘蛛池模板: 一边摸一边桶一边脱免费视频| 亚洲国产综合第一精品小说| 疯狂做受xxxx高潮视频免费| 好吊妞在线新免费视频| 99久久婷婷国产综合亚洲| 一区二区无码免费视频网站| 亚洲一区二区三区精品视频 | 男性gay黄免费网站| 在线免费观看a级片| 亚洲av无码专区亚洲av不卡| 日韩a级毛片免费观看| 亚洲成av人无码亚洲成av人| 国产精品四虎在线观看免费| 特级aa**毛片免费观看| 亚洲视频在线一区二区| 不卡视频免费在线观看| 亚洲AV美女一区二区三区| 免费A级毛片在线播放| 亚洲免费人成视频观看| 日韩人妻无码免费视频一区二区三区| 亚洲avav天堂av在线网毛片| 亚洲另类少妇17p| 日本免费久久久久久久网站| 亚洲一区二区中文| 免费黄色毛片视频| 皇色在线免费视频| 亚洲男人天堂影院| 日本xxwwxxww在线视频免费| sihu国产精品永久免费| 亚洲美女激情视频| 国产yw855.c免费视频| 最近中文字幕免费大全| 亚洲一区精品视频在线| 国产一区二区视频免费| 中文字幕在线免费视频| 亚洲喷奶水中文字幕电影| 四虎永久成人免费| 亚洲免费在线视频| 亚洲av成人无码网站…| 亚洲三级电影网站| 国产精品免费小视频|