posts - 43,comments - 75,trackbacks - 0

          一、           問題描述:

          1.         技術(shù)使用Ext2.0 struts2.0

          2.         在一個(gè)form表單中,有一個(gè)參數(shù)為url,這個(gè)url是維護(hù)在數(shù)據(jù)庫中的,代表一個(gè)業(yè)務(wù)數(shù)據(jù)顯示的頁面,當(dāng)用戶選擇此業(yè)務(wù)進(jìn)行處理時(shí),就需要跳轉(zhuǎn)到此業(yè)務(wù)類型的頁面進(jìn)行顯示,同時(shí)還需要傳輸過去一些數(shù)據(jù);由于傳輸?shù)臄?shù)據(jù)量也是不定的,可能會超過1024,所以使用javaScript window.location 進(jìn)行跳轉(zhuǎn),參數(shù)傳遞可能有問題,所以需要更改為post的方式將數(shù)據(jù)傳遞過去。

          二、           Ext2.0 form 簡介

          Ext 中的form表單提交,默認(rèn)的情況下為ajax方式,也就是說當(dāng)你點(diǎn)擊formsubmit按鈕時(shí),頁面不進(jìn)行跳轉(zhuǎn),只是返回處理結(jié)果(成功或者失敗)。

          但是Ext 還提供了非ajax的方式提交,只是需要額外的配置:

          onSubmit : Ext.emptyFn,

          submit : function() {

          submitForm.getForm().getEl().dom.method = 'post';

          submitForm.getForm().getEl().dom.action = rootPath                                                                                                             + "elecbill/common/unTask_goBusiPage.action";

          submitForm.getForm().getEl().dom.submit();

          }

          在上面的配置中藍(lán)色的部分就是form表單的非ajax提交方式,然后再指定其數(shù)據(jù)傳輸方式使用‘post’方式。

          三、           Struts2Chain Result介紹

          struts2中配置請求的跳轉(zhuǎn),都是在struts.xml中指定action<result>節(jié)點(diǎn),默認(rèn)我們都是跳轉(zhuǎn)到×××.jsp頁面,但是有時(shí)候我們要跳轉(zhuǎn)到其他人已經(jīng)寫好的action中進(jìn)行處理,這時(shí)候就需要用到 Chain ResultChain Result的配置如下:

          <package name="public" extends="webwork-default">

              <action name="login" class="...">

                  <result type="chain">

                      <param name="actionName">dashboard</param>

                      <param name="namespace">/secure</param>

                  </result>

              </action>

          </package>

          <package name="secure" extends="webwork-default" namespace="/secure">

              <action name="dashboard" class="...">

                  <result>dashboard.jsp</result>

              </action>

          </package>

          注意藍(lán)色部分,就是表明login的跳轉(zhuǎn)將使用 /secure下的dashboardaction進(jìn)行處理,最終將跳轉(zhuǎn)到dashboard.jsp頁面

          四、           問題解決方案

          1.        通過上面介紹的Ext form的非ajax方式和struts2Chain Result的處理方式。

          2.        我們先設(shè)計(jì)一個(gè)業(yè)務(wù)跳轉(zhuǎn)“中轉(zhuǎn)站”,此中轉(zhuǎn)站的功能主要是接收用戶選擇相應(yīng)的業(yè)務(wù)處理之后,根據(jù)參數(shù)中的url,跳轉(zhuǎn)到對應(yīng)的業(yè)務(wù)顯示頁面中。

          3.        Ext中的form表單配置為非Ajax方式,action指向“中轉(zhuǎn)站”的action

          submitForm.getForm().getEl().dom.action = rootPath   + "elecbill/common/unTask_goBusiPage.action"

          4.         然后在中轉(zhuǎn)站中解析傳遞的url參數(shù),將namespace 的名稱和action的名稱取出并且保存為String actionName  Sting nameSpace 

          struts.xml文件中配置如下:

          <result name="goBusiPage" type="chain">

                   <param name="actionName">${actionName}</param>

                   <param name="namespace">${namespace}</param>

          </result>

          這樣就可以就實(shí)現(xiàn)了動態(tài)跳轉(zhuǎn)了!

          posted on 2010-07-12 11:33 夢源 閱讀(2110) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 钦州市| 清涧县| 定边县| 普陀区| 邳州市| 佛教| 永泰县| 徐闻县| 林芝县| 崇明县| 蒙阴县| 开平市| 东乡族自治县| 商丘市| 洛宁县| 分宜县| 即墨市| 庄河市| 黔南| 布尔津县| 永清县| 新化县| 丰城市| 游戏| 攀枝花市| 青田县| 宝鸡市| 德州市| 兴海县| 奉化市| 攀枝花市| 东阳市| 遂宁市| 尚义县| 新密市| 高陵县| 合作市| 巨鹿县| 会同县| 临武县| 保康县|