PF 3.5(4.0),Omnifaces 1.6.3,Mojara 2.1.21
是否可以控制将在JSF xhtml页面内发送的http标头?我的意思是:
.xhtml :
<html xmlns:http="a cool name space">
<h:head>
<http:headers header="Cache-Control" value="no-cache, no-store, must-revalidate" />
</h:head>
<h:body> .... </h:body>
</html>
答案 0 :(得分:6)
您是不是要指示浏览器进行缓存吗?只需使用过滤器并将您想要的内容添加到响应标头中:
HttpServletResponse res = (HttpServletResponse) response;
if (!req.getRequestURI().startsWith(
req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources //
// (CSS/JS/Images/etc)
res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
res.setDateHeader("Expires", 0); // Proxies.
}
另见:
答案 1 :(得分:1)
我通过在XHTML页面添加以下行找到了一个简单的解决方案:
<f:event type="preRenderView"
listener="#{facesContext.externalContext.response.setHeader('Cache-Control', 'no-cache, no-store')}" />