1. 程式人生 > >解決struts2 acton redirect 後不能重新整理的問題 另:實現頁面框架區域性重新整理的方法

解決struts2 acton redirect 後不能重新整理的問題 另:實現頁面框架區域性重新整理的方法

在實際過程中,對message 進行了刪除或者標記已讀的操作後,action 進行redirect ,希望重新進入messaeg 顯示頁面:

   <result name="readOrDeleteMessages" type="redirectAction">messageAction!findMessages?userId=${userId}&amp;messageType=inAll&amp;timeSeconds=${timeSeconds}
                      </result>

但頁面不能重新整理,發現findMessages  這個Action 已經執行過了,並且資料庫裡的資料已經完成了修改操作。

baidu 了一下,都沒有找到適用的方法。

 我想到了之前寫過的一個PHP 網頁,使用了 AJAX 來進行資料操作,返回原始頁面時顯示的也還是當時的方法。原因在於前後兩個URL 的請求是一樣的,PHP 頁面當然不會重新整理頁面。為此,我在URL 後面添加了當前時間來使每個URL 都不可能相同。那個問題很快就解決了

但是在這裡,我也用到了在URL 中新增時間,但還是不能重新整理頁面。因為操作前的資料放在session中,重新進入頁面時,從session 中取出的資料相同,因此沒有重新整理JSP 頁面。

然後我想到了程式自動重新整理頁面的方式來實現。因為刪除和標記已讀請求都是使用  JQuery 的$.post  來實現的,我就可以在 ajax 的回撥函式來實現頁面重新整理

但是又因為這個我自己用來練習的專案,我大膽使用了  frame  頁面框架來實現頁面的顯示。主頁面分三個部門:

 <frameset rows="20%,80%">
<frame noresize="noresize" frameborder="0" scrolling="no" src="jsp/top.jsp">
 
     <frameset cols="14%,86%">
    <frame noresize="noresize" frameborder="0" scrolling="no" src="jsp/middleLeft.jsp">
       <frame name="mainContent" noresize="noresize" frameborder="0" scrolling="yes" src="jsp/middleRight.jsp">

其中,顯示主要操作介面的frame 名為  mainContent,我只希望重新整理 mainContent frame ,如果重新整理主頁面

http://localhost:8092/SSH/loginValidAction!validLogin.action

則是重新進入系統,還得重複一遍剛才的所有操作

baidu 了一下,

window.parent.frames["bottom"].location.reload();

JavaScript這個語句可以實現我想要的功能:

我的JS 程式碼如下:

 $.post(
                    $url,
                    function(){
                    window.parent.frames["mainContent"].location.reload();}
                    )