如何在用户点击后退按钮时让上一页的JSF组件重新呈现?

时间:2011-06-08 16:51:51

标签: jsf rerender

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

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

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

1 个答案:

答案 0 :(得分:1)

见这里的答案:

javax.faces.application.ViewExpiredException: View could not be restored

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

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);

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