blogjava's web log

          blogjava's web log
          ...

          JpetStore學習struts新的開發模式

          ?

          今天研究了一下JpetStore源代碼 ,發現它的開發strust模式和我們以往開發的模式完全不同,所有的strust類都繼承org.apache.struts.beanaction.BaseBean

          仔細研究BeanAction類,發現它其實是一個通用類,利用反射原理,根據URL來決定調用formbean的哪個方法!

          一個簡單的例子

          package ?strutstest.action;
          // 繼承BaseBean
          import ?org.apache.struts.beanaction.BaseBean;

          public ? class ?TestBean? extends ?BaseBean? {
          ????
          ????
          public ? static ? final ?String?SUCCESS? = ? " success " ;
          ????
          public ? static ? final ?String?FAILURE? = ? " failure " ;
          ????
          public ?TestBean()? {
          ????}

          ????
          private ?String?id;
          ????
          private ? int ?age;
          ????
          private ?String?name;
          ????
          private ?String?address;
          ????
          // getter?setter
          // 定義幾個業務方法
          ???? public ?String?saveUser()
          ??????
          {
          ??????????System.out.print(
          " 添加用戶.. " );
          ??????????
          // 這里返回一個字符串,將自動導向成功頁
          ??????????
          // 對應的是 forward 的名稱
          ?????????? return ?SUCCESS;
          ??????}

          ??????
          public ?String?updateUser()
          ??????
          {
          ??????????System.out.print(
          " update?user.. " );
          ?????????
          ??????????
          return ?SUCCESS;
          ??????}

          ??????
          public ?String?getUser()
          ??????
          {
          ??????????
          if (id == null )
          ??????????
          {
          ?????????????System.out.print(
          " 沒有此用戶 " );
          ?????????????
          // 導向失敗
          ?????????????retutn?FAILURE;?
          ???????????}

          ??????????
          ??????????System.out.print(
          " 用戶id= " + id);
          ??????????
          return ?SUCCESS;
          ??????}


          strust-config.xml配置文件

          <struts-config>
          ??
          <form-beans>
          ????
          <form-bean?name="testBean"?type="strutstest.action.TestBean"?/>
          ??
          </form-beans>
          ??
          <action-mappings>
          ????
          <action?name="testBean"?path="/test/saveUser"?type="org.apache.struts.beanaction.BeanAction">
          ??????
          <forward?name="success"?path="/success.html"?/>
          ????
          </action>
          ????
          <action?name="testBean"?parameter="*"?path="/test/index"?type="org.apache.struts.beanaction.BeanAction"?validate="false">
          ??????
          <forward?name="success"?path="/user.jsp"?/>
          ????
          </action>
          ????
          <action?name="testBean"?path="/test/updateUser"?type="org.apache.struts.beanaction.BeanAction">
          ??????
          <forward?name="success"?path="/success.html"?/>
          ????
          </action>
          ????
          <action??name="testBean"?path="/test/getUser"?type="org.apache.struts.beanaction.BeanAction"?>
          ?????????
          <forward?name="success"?path="/success.html"?/>
          ????
          </action>
          ??
          </action-mappings>


          說明|:

          Struts-config.xml的配置里有3種映射方式,來告訴BeanAction把控制轉到哪個form bean對象的哪個方法來處理。


          <action name="testBean" path="/test/saveUser" type="org.apache.struts.beanaction.BeanAction">
          ????? <forward name="success" path="/success.html" />
          ??? </action>


          此種方式表示,控制將被轉發到"testBean"這個form bean對象 的"savaUser"方法(行為)來處理。方法名取"path"參數的以"/"分隔的最后一部分。
          parameter="*"

          此種方式表示,form bean上沒有任何方法被調用。如果存在"name"屬性,則struts把表單參數等數據填充到form bean對象后,把控制轉發到"success"。否則,如果name為空,則直接轉發控制到"success"。這就相當于struts內置的org.apache.struts.actions.ForwardAction的功能

          前臺調用

          <html:link?page="/test/saveUser.do">
          saveUser
          </html:link>
          <html:link?page="/test/getUser.do?id=22">
          getUser
          </html:link>
          <html:link?page="/test/updateUser.do">
          UpdateUser
          </html:link>
          </body>
          </html:html>



          參考

          http://blog.csdn.net/yanwp/archive/2006/01/13/578379.aspx

          posted on 2006-05-30 00:09 record java and net 閱讀(840) 評論(3)  編輯  收藏 所屬分類: struts

          評論

          # re: JpetStore學習struts新的開發模式 2006-05-30 12:18 老鼠

          :):)

          您這篇文章我也要了:p

          轉ITPUB論壇去:P

          您要是不愿意,要跟我說一聲哦:P  回復  更多評論   

          # re: JpetStore學習struts新的開發模式 2006-05-30 17:25 吳某人-不斷地學習

          同道中人..

            回復  更多評論   

          # re: JpetStore學習struts新的開發模式 2007-03-17 16:00 阿壽

          這篇文章我看了,對我有用,謝謝你啦.  回復  更多評論   


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


          網站導航:
           

          導航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動態語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評論

          主站蜘蛛池模板: 观塘区| 石狮市| 咸阳市| 大连市| 桐柏县| 湘阴县| 三明市| 庆城县| 漳州市| 大余县| 思茅市| 志丹县| 大港区| 长丰县| 延吉市| 东兴市| 新邵县| 徐闻县| 新干县| 杭州市| 沁源县| 游戏| 泽库县| 封开县| 福鼎市| 河津市| 和平县| 乐东| 凤凰县| 北辰区| 东源县| 斗六市| 蒙城县| 子洲县| 大丰市| 垦利县| 台中县| 阳曲县| 恩施市| 卓尼县| 鄂温|