cAng^Er

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

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

          兩個(gè)jsp頁面通過xwork傳數(shù)據(jù)的幾個(gè)方式:
                這幾個(gè)方法是在做項(xiàng)目時(shí)用到的,記在這里,如果忘記了可以參考一下,大家如果感興趣,也可以參考一下,我想對初學(xué)webwork的應(yīng)該會有一些幫助,我做東西沒太多的經(jīng)驗(yàn),可能有很多地方說的不對,寫得時(shí)候也是按照自己的理解寫上去的,例子里的代碼,是我做東西時(shí)候的真實(shí)代碼,也是可行的,主要是說明一下怎么做。
              起初屬于無奈,因?yàn)椴荒芙?jīng)過后臺連接數(shù)據(jù)庫得到數(shù)據(jù),即使能得到,也是很麻煩,很耗費(fèi)時(shí)間,無奈通過xwork進(jìn)行傳值!現(xiàn)在發(fā)現(xiàn)挺好的一件事情,也許有弊端,但我的經(jīng)驗(yàn)不足,暫時(shí)并沒有發(fā)現(xiàn),如果有什么不對的地方,希望大家給點(diǎn)意見,批評一下,呵呵,我是大一的學(xué)生!
               1.如果這個(gè)頁面的數(shù)據(jù)要給下一個(gè)頁面,且不經(jīng)過java文件處理,可以用這個(gè)方法!
          那是一個(gè)request的周期問題,因?yàn)樵趦蓚€(gè)jsp界面通過xwork進(jìn)行跳轉(zhuǎn),需要傳相同的數(shù)據(jù)或者下一個(gè)界面要用到上一個(gè)jsp頁面的數(shù)據(jù)時(shí)就可以像下面那樣傳值,要注意的是,兩個(gè)jsp頁面,在xwork跳轉(zhuǎn)的時(shí)候不能經(jīng)過java文件也就是不能讓另一個(gè)java文件進(jìn)行處理,如果在經(jīng)過一個(gè)java文件,那么request存儲的數(shù)據(jù)就會丟失!相反,request存儲的數(shù)據(jù)就會存在。
          例如,
          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)過后臺!(也許可以經(jīng)過后臺,只要不進(jìn)行存儲數(shù)據(jù)就可以,但我沒試過,因?yàn)槟菢泳蜎]有意義了!)
          另一個(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中對result可以不用做任何處理,只要告訴它下一個(gè)界面是什么就可以了!
          其中:${param.categoryId}和${param.testId}是得到上個(gè)界面的值得!
              2. 如果在兩個(gè)頁面?zhèn)髦担虚g經(jīng)過了一個(gè)java文件,那么可以通過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)過兩個(gè)action,經(jīng)過一個(gè)action后還要經(jīng)過另一個(gè)action才能到下一個(gè)jsp,后一個(gè)action需要jsp界面的數(shù)據(jù),那么可以用重定向redirect,這樣就可以達(dá)到你想要的結(jié)果!(也可以不用,但要通過數(shù)據(jù)庫在去查數(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)過高人指點(diǎn)才做到的,發(fā)在這里有興趣的大家分享一下,也許我描述不對,但我相信大家看例子也可以看懂得!如果有什么不對的地方,也請前輩們諒解并給予糾正!

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

          評論

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

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

          主站蜘蛛池模板: 麻栗坡县| 常宁市| 兴安盟| 吴川市| 福建省| 湟源县| 郴州市| 栾川县| 仪征市| 界首市| 柳州市| 琼海市| 个旧市| 蒙自县| 石屏县| 余庆县| 德格县| 上虞市| 建平县| 措美县| 清涧县| 略阳县| 福州市| 湟中县| 张家港市| 西乌| 佛山市| 兰坪| 柳江县| 乌兰察布市| 新津县| 常熟市| 澄江县| 石河子市| 天峻县| 汶上县| 盐源县| 武隆县| 永州市| 佛山市| 郓城县|