【问题标题】:Wicket page expires on backbuttonWicket 页面在返回按钮上已过期
【发布时间】:2014-01-29 08:09:47
【问题描述】:

在我的检票口应用程序中,我遇到了一个奇怪的问题。当用户按下浏览器的返回按钮时,页面过期,并显示 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 时,页面会过期。例如,如果 url 是这样的

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

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

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

我得到一个 PageExpired 窗口。

【问题讨论】:

    标签: ajax wicket wicket-1.5


    【解决方案1】:

    当在页面存储中无法通过其 id 找到 Page 实例时,将引发 PageExpiredException。该页面可能由于以下原因而丢失:

    • 该页面从未存储在那里,例如期间发生错误 存储过程(检查您的日志是否有序列化错误)
    • http 会话已过期,因此与此相关的所有页面 会话也被删除
    • 页面实例已被删除,因为超出了存储大小

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 2019-03-10
      • 2010-11-12
      • 2013-04-11
      • 1970-01-01
      相关资源
      最近更新 更多