首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

struts2+hibernate+spring中文乱码有关问题

2012-08-10 
struts2+hibernate+spring中文乱码问题很多朋友在做ssh项目的时候存在各个地方的乱码,本人也刚遇到这个问

struts2+hibernate+spring中文乱码问题

很多朋友在做ssh项目的时候存在各个地方的乱码,本人也刚遇到这个问题, 正好借此机会总结一下。现在遇到两种情况下的乱码

?

?

jsp页面请求action时的乱码 ?jsp页面form表单输入中文,提交到action时再action接受后会出现乱码 (页面代码以utf-8为准),这个可 ? ? ? ? ? ? ? 在 struts.xml里面配i18nencoding,我是在web.xml里加了一个Filter,这个Filter是spring源码里带的。路径 ? ? ? ? ? ? ? 是org.springframework.web.filter.CharacterEncodingFilter.class,配置文件如下:<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
特别注意的是,这个配置要在struts2前面拦截器前面,这样在action接到的数据就不会乱码了。hibernate 在存数据的时候乱码这个过程是hibernate调用save方法的时候,保存前的参数是中文,存进去则为若干个????? ? ? ? 在spring配置文件里配置dataSource的时候要注意在配置url的时候必须将数据库对应的编码格式 ? ? ? ? 写进去, 例如 ;
我的jdbc.properities 文件中的代码:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/shop?useUnicode=true&characterEncoding=UTF-8
? ? ? ? jdbc.username=root
? ? ? ? jdbc.password=root

? ? ? ? 就是红色字体那一段了,在spring配置文件中

? ? ? ?<bean id="dataSource" destroy-method="close"
? ? ? ? ? ?/>
? ? ? ? ? ?<property name="url" value="${jdbc.url}" />
? ? ? ? ? ?<property name="username" value="${jdbc.username}" />
? ? ? ? ? ?<property name="password" value="${jdbc.password}" />
? ? ? ? ? ?</bean>

? ? ? ? ? ?这样如果你的数据库对应表的编码为utf-8; 则save进去的就不会乱码了。

? ? ? ? ? ?如果spring配置文件中url直接写,而不是通过$引入的话,要这样写:
? ? ? ? ? ?useUnicode=true&amp;characterEncoding=UTF-8
? ? ? ? ? ? 因为在引号中 &会被解析成别的东西。

?

热点排行