SiteMeshデコレータに応答のコンテンツタイプを変更するように説得しようとしていますが、喜びはありません。コンテンツタイプは、デコレータのタイプではなく、常にデコレートされたJSPと同じになります。
たとえば、ヘッダー付きのJSPがあるとします
<%@ page contentType="application/xhtml+xml" %>
これを定義するSiteMeshデコレータJSPもあります。
<%@ page contentType="application/vnd.wap.xhtml+xml" %>
私が欲しいのは、デコレートされた応答にデコレータのmimeタイプを持たせることです(ここで使用される実際のMIMEタイプは重要ではありません。これは、問題を説明するためだけのものです)。
SiteMesh 2.4.1ソースを掘り下げると、問題はContentBufferingResponseターゲットの出力をキャプチャする責任があるクラスにあることがわかります。これはメソッドをオーバーライドし、setContentType()後で使用するために値を記録しますが、を呼び出しsuper.setContentType()て、ターゲットJSPのコンテンツタイプを直接応答に効果的に渡します。それが行われると、他の方法で行うように応答を説得する量のcajolingはありません。
それで、これの回避策はありますか?ターゲットJSPのコンテンツタイプを抑制し、代わりにデコレータから取得できますか?