首页 > 其他 > 详细

struts2表单提交乱码问题

时间:2015-03-21 02:09:39      阅读:348      评论:0      收藏:0      [点我收藏+]

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">

struts2表单提交乱码问题

原文:http://www.blogjava.net/produ/archive/2015/03/20/423663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!