2015-11-19 32 views
0

我正在使用wicket 6.15編寫web應用程序。
我有一個問題:
- 登錄到Web與用戶登錄(標籤1)
- 打開多個標籤(標籤2)
- 使它experid會議樣改變服務器時間
- 在選項卡1,做一些事情的時候,pageexpiredexception拋出會讓我去重新登錄,我登錄與用戶A(像以前一樣)
Wicket重新登錄時發生PageExpiredException

org.apache.wicket.protocol.http.PageExpiredException:頁ID爲「10」過期。

-in標籤2,什麼時候做一些事pageexpiredexception扔讓我去登錄。

org.apache.wicket.protocol.http.PageExpiredException:id爲'11'的頁面已過期。

我該如何解決這個問題?我希望在選項卡2中繼續,無一例外,因爲它使用相同的用戶帳戶。

回答

2

在創建第二個會話後,沒有頁面中的ID爲'11',因此拋出PageExpiredException。 默認情況下,Wicket會嘗試從url中檢測頁面類並創建它的新實例。如果它無法檢測到,例如網址就像「/ wicket/page?11」,那麼將會使用ApplicationSettings#getPageExpiredExceptipPage()

如果登錄頁面顯示在您的應用程序中,那麼您最有可能擁有自定義的IRequestCycleListener,它在其#onException()方法中捕獲PEE並重定向到您的登錄頁面。

0

可以在檢票口7嘗試重定向WebApplication class

getApplicationSettings().setPageExpiredErrorPage(LoginPage.class); 

到登錄頁面一旦登錄過期會重定向到您的登錄頁面。