Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          在用分派action的時候,我有兩個頁面addnews.jsp、listnews.jsp,在NewsAction.java中有兩個方法:addNews(),listNews()。當我在addnews.jsp中提交表單到action中的addNews()中,在里面我執行完插入數據庫的操作以后,我希望轉向到listnews.jsp中,所以一般想到的都是寫:return listNews(mapping, form, request, response);然后再listNews()方法中我執行了查詢數據庫的操作,最后我再forword到listnews.jsp,這個流程應該是非常清晰的,但是問題出來了,當我們增加新的文章以后,我們返回到列表界面,但是url路徑仍然是http://localhost:8080/newstest/newsAction.do?method=addNews 那么這就要出現問題了,當我們不斷的刷新頁面的時候,我們會發現,列表中增加了很多重復的數據,這是因為刷新url路徑時,請求還是從插入數據庫的操作開始的,所以一遍遍的執行插入操作,造成了頁面的重復提交。
          怎么解決呢?我們知道,重定向可以解決頁面刷新帶來的數據的重復提交的問題,我們自然可以利用重定向的方式來解決這個問題。但是struts的action里面mapping.findword();跳轉的話,默認的是在工程文件夾里面找要跳轉的頁面。這種情況,怎么解決呢?
           修改struts-config.xml 文件, 在action里面有一個redirect重新定向的屬性,struts中默認的是false,添加這個屬性,改成true,在forword中寫上要跳轉頁面的絕對或者相對地址就行了
          修改如下:
          <action-mappings>
            <action attribute="newsActionForm" name="newsActionForm"
             input="/addnews.jsp" path="/newsAction" parameter="method"
             scope="request" type="com.yongtree.news.action.NewsAction">
             <forward name="list" path="/listnews.jsp" redirect="true"></forward>
             <forward name="error" path="/addnews.jsp"></forward>
            </action>
          </action-mappings> 

          posted on 2008-04-19 20:56 seal 閱讀(617) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 周宁县| 高雄县| 宜君县| 佛冈县| 钦州市| 博爱县| 承德市| 遂宁市| 阿拉善右旗| 沧州市| 富裕县| 和政县| 郁南县| 民勤县| 鸡西市| 灵山县| 浪卡子县| 汝州市| 乐平市| 东源县| 湖南省| 且末县| 滦南县| 宜兰县| 宁武县| 山东| 江华| 横山县| 子洲县| 文成县| 柘荣县| 萨嘎县| 荃湾区| 綦江县| 灵璧县| 中超| 长乐市| 吴堡县| 海城市| 贵州省| 河曲县|