cAng^Er

          不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因?yàn)樗麄儛畚?。

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            30 隨筆 :: 16 文章 :: 18 評(píng)論 :: 0 Trackbacks

          兩個(gè)jsp頁(yè)面通過(guò)xwork傳數(shù)據(jù)的幾個(gè)方式:
                這幾個(gè)方法是在做項(xiàng)目時(shí)用到的,記在這里,如果忘記了可以參考一下,大家如果感興趣,也可以參考一下,我想對(duì)初學(xué)webwork的應(yīng)該會(huì)有一些幫助,我做東西沒(méi)太多的經(jīng)驗(yàn),可能有很多地方說(shuō)的不對(duì),寫得時(shí)候也是按照自己的理解寫上去的,例子里的代碼,是我做東西時(shí)候的真實(shí)代碼,也是可行的,主要是說(shuō)明一下怎么做。
              起初屬于無(wú)奈,因?yàn)椴荒芙?jīng)過(guò)后臺(tái)連接數(shù)據(jù)庫(kù)得到數(shù)據(jù),即使能得到,也是很麻煩,很耗費(fèi)時(shí)間,無(wú)奈通過(guò)xwork進(jìn)行傳值!現(xiàn)在發(fā)現(xiàn)挺好的一件事情,也許有弊端,但我的經(jīng)驗(yàn)不足,暫時(shí)并沒(méi)有發(fā)現(xiàn),如果有什么不對(duì)的地方,希望大家給點(diǎn)意見,批評(píng)一下,呵呵,我是大一的學(xué)生!
               1.如果這個(gè)頁(yè)面的數(shù)據(jù)要給下一個(gè)頁(yè)面,且不經(jīng)過(guò)java文件處理,可以用這個(gè)方法!
          那是一個(gè)request的周期問(wèn)題,因?yàn)樵趦蓚€(gè)jsp界面通過(guò)xwork進(jìn)行跳轉(zhuǎn),需要傳相同的數(shù)據(jù)或者下一個(gè)界面要用到上一個(gè)jsp頁(yè)面的數(shù)據(jù)時(shí)就可以像下面那樣傳值,要注意的是,兩個(gè)jsp頁(yè)面,在xwork跳轉(zhuǎn)的時(shí)候不能經(jīng)過(guò)java文件也就是不能讓另一個(gè)java文件進(jìn)行處理,如果在經(jīng)過(guò)一個(gè)java文件,那么request存儲(chǔ)的數(shù)據(jù)就會(huì)丟失!相反,request存儲(chǔ)的數(shù)據(jù)就會(huì)存在。
          例如,
          jsp:
             <c:url var="testContent" value="/admin/addcontent.action">
                              <c:param name="testId" value="${test.testId}"/>
                              <c:param name="categoryId" value="${test.categoryId}"/>
                          </c:url>
                          <a href="${testContent}">添加</a>
          xwork中:
              <action name="addcontent">
                      <result>/dream/admin/addcontent.jsp</result>
                  </action>
          不需要做任何的處理,但要記住,不能經(jīng)過(guò)后臺(tái)!(也許可以經(jīng)過(guò)后臺(tái),只要不進(jìn)行存儲(chǔ)數(shù)據(jù)就可以,但我沒(méi)試過(guò),因?yàn)槟菢泳蜎](méi)有意義了!)
          另一個(gè)jsp(addcontent.jsp):
           <ww:a href="admin/getTestList.action?model.category_id=${param.categoryId}&id=${param.categoryId}" value="返回">
                      返回
                  </ww:a>
          <form action="admin/addTestContent.action" method="post" enctype="multipart/form-data">
              <input type="hidden" name="categoryId" value="${param.categoryId}">
              <input type="hidden" name="content.testId" value="${param.testId}">
              <table align="center">


                  <ww:textfield label="名稱" name="content.contentName" value="" required="true"/>

                  <tr>
                      <td>上傳文件</td>
                      <td colspan="2">
                          <input type="file" name="file1"><br/>
                          <input type="file" name="file2"><br/>
                          <input type="file" name="file3"><br/>
                          <input type="file" name="file4"><br/>
                          <input type="file" name="file5"> <br/>
                      </td></tr>
                  <ww:submit value="提交"></ww:submit>

              </table>
          </form>
                在另一個(gè)界面,用${param.category}得到,param指的是<c:param>標(biāo)簽[jstl] ,在xwork中對(duì)result可以不用做任何處理,只要告訴它下一個(gè)界面是什么就可以了!
          其中:${param.categoryId}和${param.testId}是得到上個(gè)界面的值得!
              2. 如果在兩個(gè)頁(yè)面?zhèn)髦担虚g經(jīng)過(guò)了一個(gè)java文件,那么可以通過(guò)xwork進(jìn)行傳值,具體做法如果下
          jsp:
           <c:url var="testContent" value="/admin/select_Test_category.action">
                              <c:param name="model.test_id" value="${test.testId}"/>
                              <c:param name="model.category_id" value="${test.categoryId}"/>
                          </c:url>
                          <a href="${testContent}">編輯</a>
          xwork中:
          <action name="select_Test_category" class="com.cool.lvjiachun.Select_Test_categoryAction">
                      <result name="success" type="dispatcher">
                          <param name="location">/cool/lvjiachun/test_category.jsp</param>
                      </result>
                      <result name="alone" type="dispatcher">
                          <param name="location">
                              /cool/lvjiachun/editor_test_category.jsp?model.category_id=${model.category_id}</param>
                      </result>
                      <interceptor-ref name="WSStack"/>
                  </action>
          看一下result是怎么弄得吧,“?model.category_id=${model.category_id}”,${model.category_id}是第一個(gè)jsp“<c:paramname="model.test_id"value="${test.testId}"/>”
          里的name,這樣值在下一個(gè)界面就可以得到了
          下一個(gè)jsp,也就是editor_test_category.jsp,
            <ww:a href="admin/getTestList.action?model.category_id=${model.category_id}&id=${model.category_id}" value="返回">
                  返回
              </ww:a>
          這樣就可以了!
            3.如果要經(jīng)過(guò)兩個(gè)action,經(jīng)過(guò)一個(gè)action后還要經(jīng)過(guò)另一個(gè)action才能到下一個(gè)jsp,后一個(gè)action需要jsp界面的數(shù)據(jù),那么可以用重定向redirect,這樣就可以達(dá)到你想要的結(jié)果!(也可以不用,但要通過(guò)數(shù)據(jù)庫(kù)在去查數(shù)據(jù),這樣很耗費(fèi)時(shí)間,也麻煩)
          例如:
          jsp:
          <ww:form action="/admin/addTestCategory.action" method="post" validate="true">
                  <ww:textfield label="添加分類" name="test.testName" required="true"/>
                  <ww:submit value="添加"></ww:submit>
                  <ww:url id="listlink" namespace="/admin" action="getTestList" method="getList"></ww:url>
                  <ww:hidden name="test.categoryId" value="${param.id}"></ww:hidden>
              </ww:form>
          xwork中:
          <action name="addTestCategory" class="com.dream.action.TestCategoryAction" method="insert">
                      <external-ref name="testcategoryDAO">testcategoryDAOProxy</external-ref>
                      <result name="success" type="redirect">
                          <param name="location">/admin/getTestList.action?id=${test.categoryId}&amp;model.category_id=${test.categoryId}</param>
                      </result>
                      <result name="input" type="redirect">
                          <param name="location">/admin/getTestList.action?model.category_id=${test.categoryId}&amp;id=${test.categoryId}</param>
                      </result>
                      <interceptor-ref name="WSStack"/>
                      <interceptor-ref name="validationWorkflowStack"/>
                  </action>
          “${param.id}”,看到了吧,它就是1的方法得到的!!!
                      其實(shí)這些也是經(jīng)過(guò)高人指點(diǎn)才做到的,發(fā)在這里有興趣的大家分享一下,也許我描述不對(duì),但我相信大家看例子也可以看懂得!如果有什么不對(duì)的地方,也請(qǐng)前輩們諒解并給予糾正!

          posted on 2006-05-11 08:44 cAng^Er 閱讀(1172) 評(píng)論(2)  編輯  收藏 所屬分類: |:Web View:|

          評(píng)論

          # re: 兩個(gè)jsp頁(yè)面通過(guò)xwork傳數(shù)據(jù)的幾個(gè)方式 2006-11-15 23:16 yun[匿名]
          什么幾吧啊  回復(fù)  更多評(píng)論
            

          # re: 兩個(gè)jsp頁(yè)面通過(guò)xwork傳數(shù)據(jù)的幾個(gè)方式 2006-12-23 07:22 cAng^Er
          @yun[匿名]
          我寫在這里只是想記錄我的成長(zhǎng)的過(guò)程~以后回想起來(lái),可以看到我有哪些不足!當(dāng)我忘記了,不清晰了,可以很容易的查一查~  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 忻州市| 兴山县| 芜湖县| 五常市| 湛江市| 兴文县| 上高县| 文水县| 齐齐哈尔市| 南通市| 伊春市| 迁西县| 当雄县| 龙江县| 石景山区| 大姚县| 和平县| 德兴市| 塔城市| 定结县| 青冈县| 济南市| 娄底市| 和静县| 柘荣县| 达孜县| 井研县| 特克斯县| 大冶市| 阿坝县| 赤水市| 瑞丽市| 龙里县| 临清市| 新郑市| 高碑店市| 巨鹿县| 丹棱县| 乐清市| 武川县| 晴隆县|