form 提交的数据为乱码?

zifeng858 2009-09-15 04:34:58
OrgActionForm orgForm = (OrgActionForm) form;

Organization org = new Organization();

BeanUtils.copyProperties(org, orgForm);

this.orgManager.addOrg(org, orgForm.getParentId());

return mapping.findForward("pub_add_success");


orgForm的数据室乱码,jsp页面采用的是gbk编码方式,mysql数据库编码方式也是gbk,

在web.xml文件中加了一段过滤代码

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>



问一下 为什么form提交的数据还是乱码? 出现的乱码在action里当然可以通过转码方式进行转换,但问题是
使用
BeanUtils.copyProperties(org, orgForm);
如何转码?
我不想一个一个属性转换》
...全文
172 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qustgjk 2009-09-16
  • 打赏
  • 举报
回复
strust2中有个属性在strutes.xml中设置就可以了,不知道在struts1中有没有这个属性
<constant name="struts.i18n.encoding" value="GB2312"></constant>, 你试下吧
BearKin 2009-09-16
  • 打赏
  • 举报
回复
关于乱码搜集到的信息

不是广告帖 ...
zifeng858 2009-09-16
  • 打赏
  • 举报
回复

在web.xml文件中加上一段代码可以解决乱码问题,请看下面的代码,过滤代码1:可以,但是过滤代码2:却不行还是乱码,1和2的不同之处在于过滤代码的顺序不同,谁能说说原因
过滤代码1:

<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>pagerFilter</filter-name>
<filter-class>com.bjsxt.oa.web.PagerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>pagerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

过滤器代码2:

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>pagerFilter</filter-name>
<filter-class>com.bjsxt.oa.web.PagerFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>pagerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

王山而 2009-09-16
  • 打赏
  • 举报
回复
很有可能是form提交方式的问题
Gqinqin 2009-09-15
  • 打赏
  • 举报
回复
建议你还是用过滤器!
chiphuo 2009-09-15
  • 打赏
  • 举报
回复
用js的encodeURI屡试不爽
ms_X0828 2009-09-15
  • 打赏
  • 举报
回复
你最好用过滤器来改变编码
haxzheng 2009-09-15
  • 打赏
  • 举报
回复
1 jsp页面中加上 charset=gbk pageEncoding="gbk"
2 连接数据库url加上characterEncoding=gbk
3 把JSP和JAVA文件编码都改成GBK
4 tomcat /conf -->server.xml 中 <Connector>标签的URIEncoding="gbk"

还是有问题的话,只能在程序中自己转码了
String rlt = new String(src.getBytes(),"iso8859-1")
minglois 2009-09-15
  • 打赏
  • 举报
回复
hibernate配置文件里还要加

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

pangpanglovezz 2009-09-15
  • 打赏
  • 举报
回复
<form method="post">
主要这个没有设置 默认是get
luallen 2009-09-15
  • 打赏
  • 举报
回复
过滤器的问题
v2dbl 2009-09-15
  • 打赏
  • 举报
回复
1、设置jsp编码 gbk
2、设置<form method="post">
3、在项目里写个过滤器,设置编码为gbk
wjy910108 2009-09-15
  • 打赏
  • 举报
回复
在Action里边也要设置下字符集
少龙123 2009-09-15
  • 打赏
  • 举报
回复
在web.xml里再加一个过滤器,转码过滤
  • 打赏
  • 举报
回复
你看你直接网数据库里插数据还乱码吗?MySql里面编码不是UTF-8 吗?
如果不乱码就是你程序的问题了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧