我正在使用wicket 6.15对网络应用进行编码
我有一个问题:
- 登录网站并使用用户A(标签1)登录
- 打开更多标签(标签2)
- 让它像改变服务器时间一样经历会话
- 在标签1中,当做某事时,pageexpiredexception
throw会让我再次登录,我用用户A登录(如前所述)
org.apache.wicket.protocol.http.PageExpiredException:ID为' 10'的页面已过期。
-in tab 2,什么时候做pageexpiredexception
投掷让我去登录。
org.apache.wicket.protocol.http.PageExpiredException:ID为' 11'的页面已过期。
我该如何解决这个问题?我希望在标签2中继续无例外,因为它使用相同的用户帐户。
答案 0 :(得分:2)
创建第二个会话后,没有包含ID' 11'在其中,抛出PageExpiredException。
默认情况下,Wicket将尝试从url中检测页面类并创建它的新实例。如果它无法检测到它,例如网址就像" / wicket / page?11"然后将使用ApplicationSettings#getPageExpiredExceptipPage()
。
如果您的应用程序中显示了登录页面,那么很可能您有自定义的IRequestCycleListener,它以#onException()
方法捕获PEE并重定向到您的登录页面。
答案 1 :(得分:0)
您可以在wicket 7中尝试重定向到WebApplication class
getApplicationSettings().setPageExpiredErrorPage(LoginPage.class);
登录过期后,它将重定向到您的登录页面。