我有一个非常简单的应用程序,索引页中有一个输入文本和一个转到 page2.xhtml 的按钮。
<h:body>
<h:form>
<h:inputText value="#{mainBean.testValue}"/>
<p:commandButton update="myoutput" value="ajax call" ajax="false"/>
<p:separator />
<h:commandButton action="#{mainBean.gotoPageTwo}" value="goto Page2"/>
<br/>
<h:outputText value="#{mainBean.testValue}" id="myoutput"/>
</h:form>
</h:body>
</html>
我用 PrimeFaces 2.2.1 测试了这个应用程序,没有任何问题。 但提交上述每个按钮后,我的 UTF-8 字符将被破坏。 我测试过filter但它不起作用。 这是 PrimeFaces 3.x 中的错误吗? 有谁能解决这个问题吗?
最佳答案
web.xml
您在 PrimeFaces 论坛上找到的答案示例不完整。 <filter-mapping>
不见了。如果没有这个,过滤器根本就不会运行。相应添加
<filter-mapping>
<filter-name>Character Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当您已经使用 Servlet 3.0(Tomcat 7、Glassfish 3 等)时,另一种选择是仅使用 @WebFilter
类上的注释。不要忘记从 web.xml
中删除过滤器条目.
@WebFilter("/*")
有关 PrimeFaces 2.x-3.x 升级期间此字符编码问题的原因的背景说明,另请参阅 Unicode input retrieved via PrimeFaces input components become corrupted
关于jsf - PrimeFaces 3.x 中的 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11177319/