LookupDispatchAction使用示例

          Posted on 2007-09-19 13:31 優(yōu)雅Dě頽廢 閱讀(562) 評論(1)  編輯  收藏 所屬分類: Struts

          LookupDispatchAction是DispatchAction的子類。他的作用是將多個響應用戶請求的Action方法放置在同一個Action中。

          LookupDispatchAction主要適合用于頁面中同一個表單具有多個提交按鈕,每個提交按鈕要遞交給不同的Action處理方法的情況。

          LookupDispatchAction所執(zhí)行的方法也是依據頁面?zhèn)鬟f的參數來確定的。而具體執(zhí)行哪個Action方法則是由用戶提交參數的值、資源文件、定義的映射方法所共同決定的。

          具體請參考下面的例題:

          1、先在JSP頁面中使用如下的提交按鈕:

          #test.jsp

            <html:form action="/test">
                <!--property屬性的值一定與ActionMapping中的parameter屬性的值相同-->
               <html:submit property="method"><bean:message key="button.add"/></html:submit>
               <html:submit property="method"><bean:message key="button.delete"/></html:submit>
              </html:form>

          2、在Struts的配置文件中設置paramerter屬性:

          #struts-config.xml

          <!-- parameter屬性指頁面中按鈕的名稱,其中的name屬性中的ActionForm隨便建個就行我的是空的 -->

          <action path="/test" type="action.TestLookUpDispatchAction" scope="request" input="test.jsp" parameter="method" ></action>

          3、創(chuàng)建一個繼承LookupDispatchAction的類,名叫TestLookUpDispatchAction放在action包下:

          #TestLookUpDispatchAction.java

          package action;

          import java.util.HashMap;
          import java.util.Map;

          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.LookupDispatchAction;

          public class TestLookUpDispatchAction extends LookupDispatchAction {

           @Override
           protected Map getKeyMethodMap() {// 定義資源文件關鍵字與Action方法之間的映射關系
               Map<String, String> map = new HashMap<String, String>();
               map.put("button.add", "add");
               map.put("button.delete", "delete");
               return map;
           }

           // 自定義的方法
           public ActionForward add(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response)
             throws Exception {
            System.out.println("執(zhí)行add方法成功");
            return null;
           }

           // 自定義的方法
           public ActionForward delete(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response)
             throws Exception {
            System.out.println("執(zhí)行delete方法成功");
            return null;
           }
          }
          4、在資源文件中為每個標記定義顯示信息:

          message.properties

          button.add=add
          button.delete=delete

          這樣就OK了,你可以試一下是否能調用到自己想要的方法。有什么問題可以聯(lián)系我。

          Feedback

          # re: LookupDispatchAction使用示例  回復  更多評論   

          2014-05-13 18:26 by sddsd
          dsdsds

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


          網站導航:
           

          posts - 13, comments - 1, trackbacks - 0, articles - 0

          Copyright © 優(yōu)雅Dě頽廢

          主站蜘蛛池模板: 常山县| 新闻| 南宫市| 赣州市| 台南县| 含山县| 宜章县| 大关县| 波密县| 安岳县| 藁城市| 伊宁市| 康马县| 格尔木市| 磐石市| 闻喜县| 安宁市| 巴林左旗| 庄河市| 武胜县| 龙江县| 息烽县| 南通市| 日土县| 柏乡县| 兴山县| 安多县| 抚顺县| 南通市| 冷水江市| 若尔盖县| 盐山县| 鹿泉市| 青冈县| 如皋市| 桦南县| 玉环县| 定兴县| 邢台市| 比如县| 县级市|