WebSphere 7でPrimeFaces 3.4とMyFaces 2.0.7を使用しています。フィルターを使用して、応答エンコーディングを UTF-8 に設定しています。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
ログでは、次のようなリソースを含む各 JSF リソース セットでフィルターが呼び出されていることがわかります。
http://localhost:9080/myapp/javax.faces.resource/myscript.js.xhtml?ln=mylib
ただし、応答ヘッダーを見ると、 charset が設定されておらず、 のみContet-Type
が に設定されていapplication/x-javascript
ます。私のフィルターは web.xml で最初に宣言されています。私が使用しているのはorg.primefaces.webapp.filter.FileUploadFilter
、文字エンコーディングで何もしないものだけです。
メッセージが正しく表示されるため、JavaScriptファイルはデフォルトでUTF-8として扱われますが、それでも文字セットを正しく設定してほしいです。
どうすればいいですか?フィルターは常に機能していましたが、JSF/PrimeFaces では機能しないのはなぜですか? このアプローチで何か不足していますか?