1
當我使用JSF 2 Ajax時,如何控制響應是否可緩存。如果可能的話,我如何控制AJAX響應的expdate日期?謝謝! - CharlieJSF 2 AJAX響應緩存
當我使用JSF 2 Ajax時,如何控制響應是否可緩存。如果可能的話,我如何控制AJAX響應的expdate日期?謝謝! - CharlieJSF 2 AJAX響應緩存
正如JSF應用程序的典型代碼,緩存頭文件是通過Filter
設置的,該文件是Servlet層的一部分。對於這個層,在普通請求和AJAX請求之間沒有自動區別。
但JSF通過javax.faces.partial.ajax
請求參數將請求標記爲AJAX請求。 (見JSF規範第14.2.4)
如果你這樣想專門控制響應頭爲所有JSF AJAX請求,你會做這樣的事情:
@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);
}
}
PSSH的'HttpFilter'不是一部分)在我們的項目中,它是一個自帶的方便的HTTP層,通過簡單的'javax.servlet.Filter' API。 – BalusC 2011-12-28 23:19:52
哈哈,我們選擇的名字看起來太像官方名稱。但對我感到羞恥,我會改變答案;) – 2011-12-29 00:26:08