2014-01-29 46 views
0

在我的Wicket應用程序中,我遇到了一個奇怪的問題。當用戶按下瀏覽器的後退按鈕時,頁面過期,並顯示PageExpiredErrorPage。Wicket頁面後退到期

我一直在閱讀有關它,因爲上午和已經添加了no cache頭到我的網頁這樣的:有問題

@Override 
protected void configureResponse(WebResponse response) { 
    super.configureResponse(response); 
    response.setHeader("Cache-Control", "no-cache, max-age=0, no-store"); 
} 

該頁面有一個模態窗口和其他Ajax組件了。 另一件我注意到,當頁面具有可書籤URL的後退按鈕可以正常工作,但是當它具有不可收藏的URL時,頁面就會過期。例如,如果URL中含有

`http://localhost:8081/myapp/app/wicket/bookmarkable/com.myapp.foo.bar.FooPage?2` 

後退按鈕的作品,但如果我的網址是像

`http://localhost:8081/myapp/app/wicket/page?3` 

我得到一個PageExpired窗口。

回答

0

頁面實例在頁面存儲中找不到頁面實例時,會引發PageExpiredException。頁面可能由於以下原因而丟失:

  • 頁面從未被存儲在那裏,例如,在 發生錯誤的存儲過程(檢查你的日誌序列化錯誤)
  • HTTP會話已過期,因此與此相關的 會話的所有頁面都被擦除過
  • 頁面實例已經被刪除,因爲商店規模突破