cAng^Er

          不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因為他們愛我 。

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

          兩個jsp頁面通過xwork傳數據的幾個方式:
                這幾個方法是在做項目時用到的,記在這里,如果忘記了可以參考一下,大家如果感興趣,也可以參考一下,我想對初學webwork的應該會有一些幫助,我做東西沒太多的經驗,可能有很多地方說的不對,寫得時候也是按照自己的理解寫上去的,例子里的代碼,是我做東西時候的真實代碼,也是可行的,主要是說明一下怎么做。
              起初屬于無奈,因為不能經過后臺連接數據庫得到數據,即使能得到,也是很麻煩,很耗費時間,無奈通過xwork進行傳值!現在發現挺好的一件事情,也許有弊端,但我的經驗不足,暫時并沒有發現,如果有什么不對的地方,希望大家給點意見,批評一下,呵呵,我是大一的學生!
               1.如果這個頁面的數據要給下一個頁面,且不經過java文件處理,可以用這個方法!
          那是一個request的周期問題,因為在兩個jsp界面通過xwork進行跳轉,需要傳相同的數據或者下一個界面要用到上一個jsp頁面的數據時就可以像下面那樣傳值,要注意的是,兩個jsp頁面,在xwork跳轉的時候不能經過java文件也就是不能讓另一個java文件進行處理,如果在經過一個java文件,那么request存儲的數據就會丟失!相反,request存儲的數據就會存在。
          例如,
          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>
          不需要做任何的處理,但要記住,不能經過后臺!(也許可以經過后臺,只要不進行存儲數據就可以,但我沒試過,因為那樣就沒有意義了!)
          另一個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>
                在另一個界面,用${param.category}得到,param指的是<c:param>標簽[jstl] ,在xwork中對result可以不用做任何處理,只要告訴它下一個界面是什么就可以了!
          其中:${param.categoryId}和${param.testId}是得到上個界面的值得!
              2. 如果在兩個頁面傳值,中間經過了一個java文件,那么可以通過xwork進行傳值,具體做法如果下
          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}是第一個jsp“<c:paramname="model.test_id"value="${test.testId}"/>”
          里的name,這樣值在下一個界面就可以得到了
          下一個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.如果要經過兩個action,經過一個action后還要經過另一個action才能到下一個jsp,后一個action需要jsp界面的數據,那么可以用重定向redirect,這樣就可以達到你想要的結果?。ㄒ部梢圆挥茫ㄟ^數據庫在去查數據,這樣很耗費時間,也麻煩)
          例如:
          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的方法得到的?。?!
                      其實這些也是經過高人指點才做到的,發在這里有興趣的大家分享一下,也許我描述不對,但我相信大家看例子也可以看懂得!如果有什么不對的地方,也請前輩們諒解并給予糾正!

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

          評論

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

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

          主站蜘蛛池模板: 河北区| 公主岭市| 新营市| 姜堰市| 乌什县| 盘山县| 邹平县| 沂南县| 洛宁县| 衡南县| 衡东县| 会宁县| 岚皋县| 竹溪县| 珲春市| 阿拉善左旗| 银川市| 咸丰县| 东阳市| 昭通市| 洪洞县| 广灵县| 平潭县| 崇州市| 凌源市| 星子县| 清丰县| 河北省| 周宁县| 襄城县| 确山县| 石棉县| 贵港市| 巴马| 彭阳县| 屏东市| 吴旗县| 稻城县| 平阴县| 海城市| 新竹县|