JSF 2 AJAX响应缓存

时间:2011-12-27 17:17:13

标签: ajax http jsf caching

当我使用JSF 2 Ajax时,如何控制响应是否可缓存。如果可能,我如何控制AJAX响应的expry日期?谢谢! - 查理

1 个答案:

答案 0 :(得分:0)

与JSF应用程序一样,缓存标头是通过Filter设置的,javax.faces.partial.ajax是Servlet层的一部分。对于此层,正常请求和AJAX请求之间没有自动差异。

然而,JSF通过@WebFilter(filterName="httpHeaders", urlPatterns="/*") public class HTTPHeaders extends Filter { @Override public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException { if (request.getParameter("javax.faces.partial.ajax") != null) { response.setHeader("Cache-Control", "..."); response.setDateHeader ("Expires", "..."); response.setHeader("Pragma", "..."); } chain.doFilter(request, response); } } 请求参数将请求标记为AJAX请求。 (参见JSF规范第14.2.4节)

如果你想特别控制所有JSF AJAX请求的响应头,你可以这样做:

{{1}}