刷新整个页面检票口

时间:2012-10-08 10:08:00

标签: refresh wicket

我正在开发一个项目,在点击链接时将替换用户会话。由于页眉,页脚和内容(即整个页面)中的所有数据都取决于会话数据,因此必须重新加载整个页面(所有子页面)。我已经尝试过bookmarkablepagelink,但我无法在此链接上添加操作(更改会话)。我还尝试创建一个更改会话的链接,然后以编程方式单击bo​​okmarkablepagelink,但我找不到一种方法来单击链接而不使用javascript(这在此项目中无可替代)。

有什么好的建议怎么做?

2 个答案:

答案 0 :(得分:5)

在链接的onClick方法中,重置会话,然后

setResponsePage(getPage());

并且页面应该很好地刷新。

答案 1 :(得分:5)

您的问题的解决方案有两个:您替换会话,可能最好通过

完成
getSession().invalidateNow();

并将重定向发送到可收藏的网址。这也可以通过setResponsePage来完成:

setResponsePage(OtherPage.class, new PageParameters().add("foo", "bar"));

这将向浏览器发送302重定向,其中包含可收藏的URL和提供的参数,使servlet容器有足够的机会重置会话(基本上注销用户),同时等待浏览器响应。它还会触发一个新的会话cookie(因为前一个会话不再处于活动状态)。