struts2表单提交乱码问题

环境是Spring配合Struts2,页面提交表单,表单中文乱码,理应是比较简单的一个问题,但想不到解决的方式出乎意料。
其实无外乎以下几个问题

1:struts2如果使用了国际化,那么需要指定编码方式
1     <constant name="struts.locale" value="zh_CN" />
2     <constant name="struts.i18n.encoding" value="UTF-8"/>

2:
设置好所使用的页面的内容类型(JSP)
1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
2 <meta http-equiv="content-type" content="text/html; charset=utf-8" />

3:设置好request和response的setCharacterEncoding()方法,当然了,不推荐重复造轮子,让已有的轮子转起来就好,直接在项目中添加过滤器
 1      <filter>
 2         <filter-name>encodingFilter</filter-name>
 3         <filter-class>
 4             org.springframework.web.filter.CharacterEncodingFilter
 5         </filter-class>
 6         <init-param>
 7             <param-name>encoding</param-name>
 8             <param-value>UTF-8</param-value>
 9         </init-param>
10         <init-param>
11             <param-name>forceEncoding</param-name>
12             <param-value>true</param-value>
13         </init-param>
14     </filter>
15     <filter-mapping>
16         <filter-name>encodingFilter</filter-name>
17         <url-pattern>/*</url-pattern>
18     </filter-mapping>

上述三种情况是我当时能想到的,检查之后我再次尝试,但是依然乱码,之后我幻想着将过滤器的顺序条换,将org.springframework.web.filter.CharacterEncodingFilter过滤器置前,
但是问题依然没有解决。最后多方求助,是如下解决的。

4:form标签记得显式的声明提交方式
提交乱码时的form标签并没有显式的声明method为post,需要添加。
1 <form action="/supply/saveAmbiguousCustomer_mgr.htm" id="sendreq" method="POST">

posted on 2015-03-20 10:30 都较瘦 阅读(229) 评论(0)  编辑  收藏 所属分类: struts2相关问题积累


只有注册用户登录后才能发表评论。


网站导航:
 
<2015年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

博客定位:囿于目前的水平,博客定位在记录自己的学习心得和随手的练习

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜