刷新整个页面检票口

use*_*451 4 wicket refresh

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

有什么好建议怎么做?

Don*_*oby 5

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

setResponsePage(getPage());
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*rst 5

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

getSession().invalidateNow();
Run Code Online (Sandbox Code Playgroud)

并将重定向发送到可收藏的URL.这也可以这样做setResponsePage:

setResponsePage(OtherPage.class, new PageParameters().add("foo", "bar"));
Run Code Online (Sandbox Code Playgroud)

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