【发布时间】:2014-02-06 20:28:41
【问题描述】:
这个问题似乎已经被问过,但给出的唯一答案完全没有帮助。参考:support for Multi Window wicket 6.x
多年来,我们一直在内部成功运行 Wicket 1.4 应用程序。由于需要提前编译目标等原因,最终需要迁移到 v6。在此过程中,多窗口支持似乎已被完全弃用。以前,它与应用程序中的 setAutomaticMultiWindowSupport(true) 完美配合,但检票口开发人员出于某种原因决定删除此支持。
问题是,如果一个页面有两个页面,页面 X 和页面 Y,在同一个浏览器的不同选项卡中打开(因此是相同的用户会话),每个页面上都有一个 Form 组件(我们称它们为 FormX 和FormY ),并且用户先提交 FormX(添加到 Page X,版本 6),然后是 FormY(添加到 Page Y,版本 7),form Y 提交导致 Page Expired 错误。
尽管上面引用了答案,但即使将 inmemoryCacheSize 和 maxSizePerSession 都增加到了令人发指的水平,这种行为仍然存在。
Wicket 6 似乎在使用后退按钮时偶尔会触发 Page Expired 错误,但这个问题对我们的用户来说并不像多窗口支持那样成问题。
问题是,在移除 setAutomaticMultiWindowSupport() 后,是否有任何规范的解决方法可以让此功能再次运行?谢谢。
编辑:
我还想指出,这不是 Wicket 6 在迁移后给我们带来的唯一问题;它只是最容易重现的。当用户在某些页面上按下返回按钮时,我们也会遇到页面过期错误。就好像 Wicket 6 只在会话中维护一个页面,一旦呈现另一个页面,前一个页面就会被清除。如果 Wicket 提供了任何获取当前会话或页面存储状态的方法,则不清楚是否真的发生了这种清除,因此这种清除是否真的发生纯粹是假设。
【问题讨论】:
标签: wicket