6

我有一个非常简单的应用程序,在我的索引页面中有一个输入文本和一个转到 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 字符将被破坏。我测试了过滤器,但它不起作用。这是 PrimeFaces 3.x 中的错误吗?任何机构都可以解决这个问题吗?

4

1 回答 1

5

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 升级期间此字符编码问题原因的背景说明,另请参阅通过 PrimeFaces 输入组件检索的 Unicode 输入已损坏

于 2012-06-24T12:16:39.540 回答