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: