Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 客户->;服务器编码中断_Jsf 2_Entity - Fatal编程技术网

Jsf 2 客户->;服务器编码中断

Jsf 2 客户->;服务器编码中断,jsf-2,entity,Jsf 2,Entity,我在(我想是的)实体中编码有问题。在更多细节中,我有一个复合组件,负责就地编辑——用户点击文本,点击保存,数据保存在数据库中。问题是,当用户输入一些非英语字符(变音字符?)时,编码中断。例如,如果用户将在实体中输入波兰语字符ą,我会得到类似的东西ą。数据存储在mysql数据库中,其中编码设置为UTF-8,显示数据的页面也用UTF-8编码。我检查了从客户端(浏览器)向服务器发送数据后出现的问题,但我不知道问题出在哪里。我终于找到了解决方案。我所要做的就是在web.xml中添加字符编码过滤器 <

我在(我想是的)实体中编码有问题。在更多细节中,我有一个复合组件,负责就地编辑——用户点击文本,点击保存,数据保存在数据库中。问题是,当用户输入一些非英语字符(变音字符?)时,编码中断。例如,如果用户将在实体中输入波兰语字符
ą
,我会得到类似的东西
ą
。数据存储在mysql数据库中,其中编码设置为UTF-8,显示数据的页面也用UTF-8编码。我检查了从客户端(浏览器)向服务器发送数据后出现的问题,但我不知道问题出在哪里。

我终于找到了解决方案。我所要做的就是在web.xml中添加字符编码过滤器

<filter>
    <filter-name>SetCharacterEncoding</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
    <filter-mapping>
    <filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

SetCharacterEncoding
org.apache.catalina.filters.SetCharacterEncodingFilter
编码
UTF-8
SetCharacterEncoding
/*

请注意,这仅在将webapp部署到Tomcat时有效,而不是在其他服务器上。因此,您的webapp与Tomcat紧密耦合(更确切地说,是一个特定的最低Tomcat版本!),并且基本上不可移植到其他服务器版本或更旧的Tomcat版本。而是创建自己的过滤器(只需要1行业务代码)或使用JSF实用程序库,如OmniFaces: