当前访客身份:游客 [ 登录  | 注册加入尚学堂]
启用新域名sxt.cn
新闻资讯

struts2.3+spring3.3+hibernate3.6OA项目实战----乱码问题(六)

goldbin 发表于 2年前  | 评论(0 )| 阅读次数(879 )|   1 人收藏此文章,   我要收藏
摘要 struts2.3+spring3.3+hibernate3.6OA项目实战乱码问题

请求规则

  1. 中文信息一般不用get请求。
  2. 表单提交一定使用post请求,需要加method="post"。
  3. 超链接最好不要传中文,一般的参数为:唯一标识(ID)而非名称。

struts2处理办法

默认情况下,如果使用了struts2,比如:struts2.3。其中包含一个default.properties文件,已经规定了请求的编码为UTF-8。所以一般使用struts2的post请求不会出现中文乱码。


### This can be used to set your default locale and encoding scheme
# struts.locale=en_US
struts.i18n.encoding=UTF-8

 

除非:自己处理了HttpServletRequest对象。比如:上一篇中,我们加了了一个自定义的过滤器。在过滤器代码中自己取了request中的值。那么struts2的编码就会失效。从而出现中文乱码。需要再次使用编码过滤器处理编码问题。

spring的编码过滤器

在没有学习spring之前。我们都是自己写一个编码过滤器完成中文编码问题。现在spring提供了一个编码过滤器。只需要在web.xml中配置一些就可以了。


<!-- spring 的编码过滤器 -->
 <filter>
 	<filter-name>encoding</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>encoding</filter-name>
 	<url-pattern>*.action</url-pattern>
 	<dispatcher>REQUEST</dispatcher>
 	<dispatcher>FORWARD</dispatcher>
 </filter-mapping>

其中encoding是固定的名字,不能该,但是你可以改动:<param-value>UTF-8</param-value>
为GBK。

这样最终搞定编码问题。

 

 

分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
声明:博客文章版权属于原创作者,受法律保护。如果侵犯了您的权利,请联系管理员,我们将及时删除!
(邮箱:webmaster#sxt.cn(#换为@))
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183