【问题标题】:Refresh entire page wicket刷新整个页面检票口
【发布时间】:2012-10-08 10:08:00
【问题描述】:

我正在开发一个项目,在该项目中单击链接时将替换用户会话。由于页眉、页脚和内容(即整个页面)中的所有数据都依赖于会话数据,因此必须重新加载整个页面(所有子页面)。我已经尝试过 bookmarkablepagelink,但我无法在此链接上执行操作(更改会话)。我还尝试创建一个更改会话的链接,然后以编程方式单击书签页面链接,但我找不到不使用 javascript 来单击链接的方法(这在这个项目中是没有选择的)。

有什么好的建议吗?

【问题讨论】:

标签: refresh wicket


【解决方案1】:

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

setResponsePage(getPage());

页面应该会很好地刷新。

【讨论】:

  • 这不是必需的:Wicket 的默认设置是重新呈现当前页面,除非通过 setResponsePage(otherpage) 明确告知。
【解决方案2】:

解决问题的方法有两个:替换会话,最好通过

getSession().invalidateNow();

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多