Struts2 中文参数乱码问题。急!急!

mzjwx 2008-04-17 10:39:59
各位高人。我在写一个struts2程序时出现了这样一个问题。我从JSP页面中输入一个中文参数用于数据查询。当我点击查询按钮时传给action的中文参数是正常的。但是我点击翻页按钮时(注明:我做的是分页显示数据的页面)传给action的中文参数是乱码的咯。我的web.xml中的字符过滤器用的是spring中的org.springframework.web.filter.CharacterEncodingFilter。进行过滤,强制转换为GBK。我JSP页面中的页头是<%@ page language="java" contentType="text/html;charset=GBK"%>。但是就是出现乱码。请各位高手帮忙指点一下迷津。
本人想了好久都没想明白。如果是过滤器有问题的话那应该第一传过去的参数也应该是乱码。可第一次又是正常的。偏偏在什么都没改的情况下第二次传过去的参数是乱码。
...全文
1172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyujaychou 2011-10-11
  • 打赏
  • 举报
回复
接收方式 改为“post”
ztroma 2008-04-21
  • 打赏
  • 举报
回复
title = new String(title.getBytes("ISO-8859-1"), "UTF-8"); 系统的编码是ISO-8859-1,页面的编码是UTF-8
楼主可以根据自己的情况做一下修改
torn212 2008-04-19
  • 打赏
  • 举报
回复
你在第二个 action 中把提交的字符串转换编码,
比如 字符串名为 s,s=new String(s.getByte("ISO-8859-1"));
试试。
ls8707 2008-04-19
  • 打赏
  • 举报
回复
这个涉及到struts2拦截器对中文编码的问题,在表单里提交(POST方式)的中文参数都被自动编码成%3E这样的格式的字符串,我用JavaScript的URL解码函数解码了一下,发现并没有什么反应,很显然不是JavaScript中的URL编码,具体是什么我也不太清楚,不过解决方法倒是有的,就是你的表单发送方式用Get别用Post就好了
roc230 2008-04-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 torn212 的回复:]
你在第二个 action 中把提交的字符串转换编码,
比如 字符串名为 s,s=new String(s.getByte("ISO-8859-1"));
试试。
[/Quote]

我也有同感
IamHades 2008-04-17
  • 打赏
  • 举报
回复
你设置断点看看是哪一步开始变成乱码的。通常用post方式提交form数据到servlet都会被过滤器过滤的,不知道是不是这方面的原因。另外,你可以使用tomcat自带的那个过滤器替换spring的试一下,个人建议,可以不采纳哈,呵呵。
mzjwx 2008-04-17
  • 打赏
  • 举报
回复
怎么没人给点建议阿!
mzjwx 2008-04-17
  • 打赏
  • 举报
回复
我找出来了一些原因。但又有些糊涂了。找出来的原因就是:当我翻页时aciton是调用了相应的属性的set方法对属性变量赋值。可是他赋的值不是我文本框中查询条件的值。(我做了测试,就是在先修改文本框中的查询条件,然后再点击翻页按钮。set方法中传过来的参数还是原来的参数。而不是我刚刚新修改的参数)。所有我想这就不是过滤器的问题了。而是什么情况struts2才会调用set方面来设置属性值。请各位指点一下。
dyw31415926 2008-04-17
  • 打赏
  • 举报
回复

请将你所有的编码改为UTF-8而不是GBK

67,537

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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