Wicket页面在后退按钮上过期

时间:2014-01-29 08:09:48

标签: ajax wicket wicket-1.5

在我的检票口中,我遇到了一个奇怪的问题。当用户按下浏览器的后退按钮时页面过期,并显示PageExpiredErrorPage。

我从早上开始阅读它,并已将no cache标题添加到我的页面中,如:

@Override
protected void configureResponse(WebResponse response) {
    super.configureResponse(response);
    response.setHeader("Cache-Control", "no-cache, max-age=0, no-store");
}

有问题的页面也有一个模态窗口和其他Ajax组件。 另一件事我注意到,当页面具有可书签的URL时,后退按钮工作正常,但是当它具有不可书签的URL时,页面将过期。例如,如果网址是

`http://localhost:8081/myapp/app/wicket/bookmarkable/com.myapp.foo.bar.FooPage?2`

后退按钮有效,但如果我的网址是

`http://localhost:8081/myapp/app/wicket/page?3`

我有一个PageExpired窗口。

1 个答案:

答案 0 :(得分:0)

当页面存储中的ID无法找到Page实例时,抛出PageExpiredException。由于以下原因,页面可能会丢失:

  • 页面从未存储在那里,例如期间发生了错误 存储过程(检查日志中的序列化错误)
  • http会话已过期,因此所有与此相关的页面都已过期 会话也被删除
  • 页面实例已被删除,因为商店规模超过
相关问题