2011-12-27 19 views
1

JSF 2 Ajaxを使用する場合、レスポンスをキャッシュ可能にするかどうかを制御する方法を教えてください。それが可能であれば、AJAXレスポンスの有効期限をどのように制御するのですか?ありがとう! - CharlieJSF 2 AJAXレスポンスキャッシュ

答えて

0

JSFアプリケーションによくあるように、キャッシングヘッダーはサーブレットレイヤーの一部であるFilterで設定します。このレイヤーでは、通常の要求とAJAX要求の間に自動的な違いはありません。

JSFは、リクエストパラメータとしてjavax.faces.partial.ajaxリクエストを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); 
    } 
} 
+0

PSSH、 'HttpFilter'が一部ではありません:あなたはこのように、特に、すべてのJSF AJAX要求に対する応答ヘッダを制御したい場合は、あなたのような何かをするだろう

(JSF仕様のセクション14.2.4を参照してください)サーブレットAPIの;)私たちのプロジェクトでは、裸の 'javax.servlet.Filter' APIよりも自宅で便利なHTTP層です。 – BalusC

+0

私たちが選んだ名前は正式な名前のように見えます。しかし、私には恥がある、私は答えを変更します;) –

関連する問題