当我的wicket应用程序的用户丢失其会话(例如会话过期),他们正在看到的页面上的链接以及表单提交时,只向用户显示该起始页。相反,如果无法显示正确的结果,我希望Wicket显示其会话过期"错误信息。
例如,startpage显示一些数据。您在搜索字段中输入查询,然后单击提交按钮。您可能希望看到过滤结果或错误(会话已过期),但Wicket只是默默地创建一个新会话并显示startpage,这是没有过滤器的结果。这看起来像一个错误("过滤器不起作用!")。
例如,如果您转到页面https://login.firstbird.eu/,则删除JSESSIONID cookie,然后单击"忘记密码"链接,那么你期待"忘记密码"要显示的页面,而是再次显示起始页。 (我知道这可以通过可收藏的链接解决,但还有其他情况依赖于无法通过可收藏链接解决的会话和页面信息。)
日志中没有序列化错误,但我认为无论如何都不重要。无论会话和页面是否可序列化,仍然会有会话到期的时间(例如超时)。
我想我第一次注意到Wicket 1.5中的这个功能;我很确定这在Wicket 1.4中有效。
这看起来像Wicket中的一个错误。我错了吗?我在这里误解了Wicket的意图吗?或者我做错了什么?
答案 0 :(得分:2)
有一个设置是显示PageExpiredPage还是重新创建当前页面: https://github.com/apache/wicket/blob/2de1284a589f7862133bb2c2166bf8563268d252/wicket-core/src/main/java/org/apache/wicket/settings/IPageSettings.java#L67-L77
大多数人更喜欢展示新鲜的实例而不是丢失上下文并找回原点。这就是为什么这是默认值。