一个form 表单里有个文本框:输入英文,在给struts(1.3)的formbean 赋值时没问题,但是,输入中文时,formbean 对应的属性就会出现乱码啦。
(struts 和jpa 及spring 集成的一个项目)
<form action="/product/query.do" method="post" name="search" id="search">
商品搜索:<input id="word" name="word" accesskey="s" size="100" maxlength="100" value=""/>
<input type="submit" value="搜 索" id="DoSearch"/>
</form>
action:
@Controller("/product/query")
public class ProductQueryAction extends Action {
@Resource ProductSearchService productSearchService;
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ProductQueryForm formbean = (ProductQueryForm) form;=================》》》中文赋值时有乱码
PageView<ProductInfo> pageView = new PageView<ProductInfo>(12,formbean.getPage());
pageView.setQueryResult(productSearchService.search(formbean.getWord(),
pageView.getFirstResult(), pageView.getMaxresult()));
request.setAttribute("pageView", pageView);
return mapping.findForward("list");
}
}
26 个解决方案
#1
post表单传递参数乱码 接受参数乱码编码
* 通过jsp页面,html页面或者servlet中的表单元素提交参数给对应的jsp页面或servlet
而jsp和servlet接收的参数产生中文乱码
* 在接收post提交的参数之前,使用request.setCharactEncoding("utf-8")设定接收参数的内容使用"utf-8"编码
* 更好的解决办法是添加过滤器
* 通过jsp页面,html页面或者servlet中的表单元素提交参数给对应的jsp页面或servlet
而jsp和servlet接收的参数产生中文乱码
* 在接收post提交的参数之前,使用request.setCharactEncoding("utf-8")设定接收参数的内容使用"utf-8"编码
* 更好的解决办法是添加过滤器
#2
这些方法我都用上啦,可是还没有效果呢?
我上网搜了好多,都不行啊 求高手啦
#3
你jsp中的编码是什么?
gbk? gb2312、? utf8?
gbk? gb2312、? utf8?
#4
UTF-8
#5
在过滤器中设置request的编码为UTF-8,在JSP中也设置编码为UTF-8
#6
这个也试过了,也在web.xml配置好了,还是不行啊,困扰了我一整天了……
#7
你加过滤器 也不行么?
不行 我也就米法了
不行 我也就米法了
#8
在tomcat设置一下
#9
网上说 :tomcat 对于处理post 和get 方式的请求,处理方法不一样,get 要在(tomcat-->config.xml-->server.xml 中 加个 URIEncoding="gbk"……,都不行啊。
是不stuts 和spring 集成造成的呢?
是不stuts 和spring 集成造成的呢?
#10
在tomcat里 是不是加个 URIEncoding="gbk",还是其它高见,说出具一点啊
#11
重新写页面吧!不行了换个环境试试!估计是你开发环境的问题
#12
所有涉及到传参的地方设置统一utf-8试试看
#13
还有 tomcat也设置一下 试试 不行 我也不知道怎么办了 不好意思
#14
设置一个过滤器,
#15
有中文的情况下,JSP的编码肯定是GB2312、GBK、UTF-8中的一种,也是是JSP页面上pageEncoding。
JSP页面编码方式设置好以后,通过POST方式传值,还要设置request.setCharacterEncoding("XXX"),其中XXX和你在JSP页面设置的编码方式一样。
如果从Servelet中取数据到JSP页面上,还要设置response.setContentType("XXX"),其中XXX跟JSP页面上的也一样
JSP页面编码方式设置好以后,通过POST方式传值,还要设置request.setCharacterEncoding("XXX"),其中XXX和你在JSP页面设置的编码方式一样。
如果从Servelet中取数据到JSP页面上,还要设置response.setContentType("XXX"),其中XXX跟JSP页面上的也一样
#16
查看一下你的jsp页面的编码和action中的编码是否相同
#17
在request、response中设置了setContentType值,用过滤器也不行还真没有遇到过,
楼主自己换个环境吧!
帮顶啊 !
楼主自己换个环境吧!
帮顶啊 !
#18
过滤器乱码问题终于解决:
感谢朋友热心的参与:
首先讲一下我的问题:
我的问题是出在:
在配置过滤器时:位置不对。
我的项目中有8、9个filter ,应该把过滤字符编码的放在第一位,这样,就像一个链条一样,第一个一定把字符放好。
其它的:都是小意思了。顺便提一下:
1:jsp 页面有乱码:pageEncode=utf8
2:servlet-->jsp 乱码:在sevlet里:
request.setCharacterEncoding("utf-8");
response.setContentType("text ml;charset=UTF-8");
3:表单参数乱码:
post:过滤器来处理:(网上很多)
4:URI 参数乱码:
配置tomcat(server.xml 加入URIEncoding="utf-8")
5:property乱码:
下个日本鬼子写的:jp.gr.java_conf.ussiy.app.propedit_4.8.2_for_eclipse3.0.zip
最后,最重要的一点:就是我琢磨了整整一整天的当有多个filter时:处理文字乱码的要放在第一个位置。
感谢朋友热心的参与:
首先讲一下我的问题:
我的问题是出在:
在配置过滤器时:位置不对。
我的项目中有8、9个filter ,应该把过滤字符编码的放在第一位,这样,就像一个链条一样,第一个一定把字符放好。
其它的:都是小意思了。顺便提一下:
1:jsp 页面有乱码:pageEncode=utf8
2:servlet-->jsp 乱码:在sevlet里:
request.setCharacterEncoding("utf-8");
response.setContentType("text ml;charset=UTF-8");
3:表单参数乱码:
post:过滤器来处理:(网上很多)
4:URI 参数乱码:
配置tomcat(server.xml 加入URIEncoding="utf-8")
5:property乱码:
下个日本鬼子写的:jp.gr.java_conf.ussiy.app.propedit_4.8.2_for_eclipse3.0.zip
最后,最重要的一点:就是我琢磨了整整一整天的当有多个filter时:处理文字乱码的要放在第一个位置。
#19
自己写一个servelt过滤器试试
#20
uft-8 过滤器 网上很多的
package filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Filter implements javax.servlet.Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("filter--------init?");
}
}
#21
学习
#22
把jsp 页面中<page >编码格式改成utf-8或者gbk或者gb2312
#23
me too
#24
怎么这么多人遇到乱码问题啊。如果在项目组的话,最好每个人都统一下编码,我现在的项目都使用UTF-8,没有乱码的问题,也没有写设置字符编码的过滤器,很方便的!
#25
你所传递的数据是从数据库中查询出来的吗·?
要是从数据库中查询的数据进行传递··
看看数据库中的数据是否乱码··、
可能于数据库有关。。。。
要是从数据库中查询的数据进行传递··
看看数据库中的数据是否乱码··、
可能于数据库有关。。。。
#26
#1
post表单传递参数乱码 接受参数乱码编码
* 通过jsp页面,html页面或者servlet中的表单元素提交参数给对应的jsp页面或servlet
而jsp和servlet接收的参数产生中文乱码
* 在接收post提交的参数之前,使用request.setCharactEncoding("utf-8")设定接收参数的内容使用"utf-8"编码
* 更好的解决办法是添加过滤器
* 通过jsp页面,html页面或者servlet中的表单元素提交参数给对应的jsp页面或servlet
而jsp和servlet接收的参数产生中文乱码
* 在接收post提交的参数之前,使用request.setCharactEncoding("utf-8")设定接收参数的内容使用"utf-8"编码
* 更好的解决办法是添加过滤器
#2
这些方法我都用上啦,可是还没有效果呢?
我上网搜了好多,都不行啊 求高手啦
#3
你jsp中的编码是什么?
gbk? gb2312、? utf8?
gbk? gb2312、? utf8?
#4
UTF-8
#5
在过滤器中设置request的编码为UTF-8,在JSP中也设置编码为UTF-8
#6
这个也试过了,也在web.xml配置好了,还是不行啊,困扰了我一整天了……
#7
你加过滤器 也不行么?
不行 我也就米法了
不行 我也就米法了
#8
在tomcat设置一下
#9
网上说 :tomcat 对于处理post 和get 方式的请求,处理方法不一样,get 要在(tomcat-->config.xml-->server.xml 中 加个 URIEncoding="gbk"……,都不行啊。
是不stuts 和spring 集成造成的呢?
是不stuts 和spring 集成造成的呢?
#10
在tomcat里 是不是加个 URIEncoding="gbk",还是其它高见,说出具一点啊
#11
重新写页面吧!不行了换个环境试试!估计是你开发环境的问题
#12
所有涉及到传参的地方设置统一utf-8试试看
#13
还有 tomcat也设置一下 试试 不行 我也不知道怎么办了 不好意思
#14
设置一个过滤器,
#15
有中文的情况下,JSP的编码肯定是GB2312、GBK、UTF-8中的一种,也是是JSP页面上pageEncoding。
JSP页面编码方式设置好以后,通过POST方式传值,还要设置request.setCharacterEncoding("XXX"),其中XXX和你在JSP页面设置的编码方式一样。
如果从Servelet中取数据到JSP页面上,还要设置response.setContentType("XXX"),其中XXX跟JSP页面上的也一样
JSP页面编码方式设置好以后,通过POST方式传值,还要设置request.setCharacterEncoding("XXX"),其中XXX和你在JSP页面设置的编码方式一样。
如果从Servelet中取数据到JSP页面上,还要设置response.setContentType("XXX"),其中XXX跟JSP页面上的也一样
#16
查看一下你的jsp页面的编码和action中的编码是否相同
#17
在request、response中设置了setContentType值,用过滤器也不行还真没有遇到过,
楼主自己换个环境吧!
帮顶啊 !
楼主自己换个环境吧!
帮顶啊 !
#18
过滤器乱码问题终于解决:
感谢朋友热心的参与:
首先讲一下我的问题:
我的问题是出在:
在配置过滤器时:位置不对。
我的项目中有8、9个filter ,应该把过滤字符编码的放在第一位,这样,就像一个链条一样,第一个一定把字符放好。
其它的:都是小意思了。顺便提一下:
1:jsp 页面有乱码:pageEncode=utf8
2:servlet-->jsp 乱码:在sevlet里:
request.setCharacterEncoding("utf-8");
response.setContentType("text ml;charset=UTF-8");
3:表单参数乱码:
post:过滤器来处理:(网上很多)
4:URI 参数乱码:
配置tomcat(server.xml 加入URIEncoding="utf-8")
5:property乱码:
下个日本鬼子写的:jp.gr.java_conf.ussiy.app.propedit_4.8.2_for_eclipse3.0.zip
最后,最重要的一点:就是我琢磨了整整一整天的当有多个filter时:处理文字乱码的要放在第一个位置。
感谢朋友热心的参与:
首先讲一下我的问题:
我的问题是出在:
在配置过滤器时:位置不对。
我的项目中有8、9个filter ,应该把过滤字符编码的放在第一位,这样,就像一个链条一样,第一个一定把字符放好。
其它的:都是小意思了。顺便提一下:
1:jsp 页面有乱码:pageEncode=utf8
2:servlet-->jsp 乱码:在sevlet里:
request.setCharacterEncoding("utf-8");
response.setContentType("text ml;charset=UTF-8");
3:表单参数乱码:
post:过滤器来处理:(网上很多)
4:URI 参数乱码:
配置tomcat(server.xml 加入URIEncoding="utf-8")
5:property乱码:
下个日本鬼子写的:jp.gr.java_conf.ussiy.app.propedit_4.8.2_for_eclipse3.0.zip
最后,最重要的一点:就是我琢磨了整整一整天的当有多个filter时:处理文字乱码的要放在第一个位置。
#19
自己写一个servelt过滤器试试
#20
uft-8 过滤器 网上很多的
package filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Filter implements javax.servlet.Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("filter--------init?");
}
}
#21
学习
#22
把jsp 页面中<page >编码格式改成utf-8或者gbk或者gb2312
#23
me too
#24
怎么这么多人遇到乱码问题啊。如果在项目组的话,最好每个人都统一下编码,我现在的项目都使用UTF-8,没有乱码的问题,也没有写设置字符编码的过滤器,很方便的!
#25
你所传递的数据是从数据库中查询出来的吗·?
要是从数据库中查询的数据进行传递··
看看数据库中的数据是否乱码··、
可能于数据库有关。。。。
要是从数据库中查询的数据进行传递··
看看数据库中的数据是否乱码··、
可能于数据库有关。。。。