jsf - PrimeFaces 3.x 中的 UTF-8

标签 jsf jsf-2 primefaces utf-8

我有一个非常简单的应用程序,索引页中有一个输入文本和一个转到 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/

相关文章:

mysql - JSF Primefaces - 从数据库进行逆向工程时要考虑的事项,以尽量减少自定义更改

jsf - 请参阅 Primefaces 红色组件中的错误

jsf - Primefaces FileUpload 在 Spring Boot 中不起作用

jsf - 选择日期后,Primefaces 5.1 日历在文本字段中失去焦点

java - 将 jsf web.xml 中的页面名称与文件名解耦

javascript - 无法在 JSF 中用 JavaScript 替换 div 内容

java - 当我将无状态 Bean 注入(inject)有状态 Bean 时会发生什么?

jsf - 写入 h :inputText in h:dataTable 中的 map 属性

jsf - 根据当前 View 处理 ViewExpiredException

jsf - 关闭 primefaces 对话框并重定向主页