1

我有一个内部 webapp 的搜索页面,该页面上有几个 JSF 组件。当用户单击表单提交时,会显示一些结果以及指向其他页面的链接。我的问题是,当单击其中一个链接时,然后单击后退按钮,上一页似乎缺少在表单中输入的信息。但是,如果页面被刷新,组件会重新呈现,所有信息都可见。

有没有办法让组件重新渲染或页面自动刷新?(我不想向服务器发送另一个请求。我想使用浏览器缓存中的页面,这似乎正在发生。我使用 Firebug 确认刷新时没有从浏览器提交 POST 请求。我主要希望组件按原样重新渲染。)

我在这里和其他地方读过许多类似的问题,但似乎没有一个问题有答案。也许我错过了一些明显的东西。

4

1 回答 1

1

在这里查看答案:

javax.faces.application.ViewExpiredException:无法恢复视图

特别是关于添加过滤器的部分:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

当用户使用后退按钮时,这将强制页面重新加载。

于 2011-06-08T17:47:52.047 回答