MyFaces Orchestra は?conversationContext=x
、ページ上の各リソースに を追加します。プロジェクトの公開部分 (管理部分のみ) には会話スコープを使用していないため、次の 2 つの理由からそのパラメーターを削除したいと考えています。
- ブラウザの静的リソースのキャッシュを壊します
- それは醜いです :)
Orchestra のソース コードを調べて、おそらく何かを回避しようと思いますが、私が知らないこのためのオプションがあれば最高です。
その質問に対する答えは簡単であると同時に、ちょっとした回避策でもあります。MyFaces オーケストラは、パラメーターHttpServletResponse
をエンコードするためにオリジナルのラッパーを使用しcontesationContext
ます。
Orchestra を使用するには、インターセプター (JSF) とFilter
. まだラップされていない場合、どちらも応答をラップしようとします。したがって、オーケストラFilter
とインターセプターの両方が使用されている場合、Filter
が最も起動し、応答オブジェクトをラップし、要求に属性を設定します。これは、インターセプターに、応答を再度ラップしないことを示します。
を追加する場合は、特定のFilter
URL パターンに一致するように を設定できますconversationContext
。しかし、私のニーズには、そのパターン マッチャーは単純すぎるので、代わりに独自のフィルターを作成しました。したがって、インターセプターに応答をラップしないように指示するには、次のことを行う必要があります。
httpRequest.setAttribute(
RequestParameterServletFilter.REQUEST_PARAM_FILTER_CALLED,
Boolean.TRUE);