我在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 中声明为 first,我使用的唯一其他过滤器org.primefaces.webapp.filter.FileUploadFilter
对字符编码没有任何作用。
JavaScript 文件默认被视为 UTF-8,因为消息显示正确,但是我希望正确设置字符集。
我该怎么做?过滤器总是为我工作,为什么不在 JSF/PrimeFaces 中?我错过了这种方法吗?