2012-07-08 22 views
1

處理一些JSF 2.0項目。具有爲新/現有用戶添加圖片的表單。無法刷新頁面(* .xhtml)無法看到新添加的圖片。我試圖把正常:在JSF頁面中查找圖片

<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0"> 

但它沒有幫助。

如何禁用頁面緩存?

+0

請發佈您的xhtml文件。它不是在這裏很重要的瀏覽器緩存。添加新圖片後,您需要更新顯示圖像的組件。 – Ravi 2012-07-08 08:37:48

+0

用於顯示圖像我正在使用HTML''標記... – 2012-07-08 10:11:34

+0

好吧,但它仍無助於理解添加新圖片後如何更新圖像。 – Ravi 2012-07-08 18:28:49

回答

2

HTML <meta http-equiv>標記爲忽略當頁面通過HTTP服務時。 <meta http-equiv>標籤僅在最終用戶將頁面保存到本地磁盤文件系統後才被解釋,然後通過file:// URL打開。

您需要在實際 HTTP響應中設置這些標頭。最簡單的方法是使用一個servlet filter基本上不

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

(請注意,您的原始Cache-Control頭是不完整的,上面的例子是正確的用法)

您可以映射上的URL模式特定頁面,但您也可以考慮將其映射到由JSF生成的所有動態頁面上。