再也不要用struts2.1.6了
来源:互联网 发布:软件设计师合格标准 编辑:程序博客网 时间:2024/04/27 19:40
struts2.1.6有一个逆天的中文乱码BUG存在。。对于设置struts.i18n.encoding"无法阻挡提交的参数出现中文乱码。这个BUG在2.1.8更正了。
方法一:升级struts2版本
方法二:听闻可以通过filter改变:
http://ywlqi.iteye.com/blog/323589
大体内容:
近期把项目从struts2.0 升级到struts2.1.6,在不加上encodingFilter的情况下,无论怎么设置struts.locale和struts.i18n.encoding,都会中文乱码,加上encodingFilter才没事,不知道这是为什么?希望大虾给予解答
我的web.xml配置
评论
另一个博客上也提到:
struts2.1.6版本中存在一个Bug,即接收到的中文请求参数为乱码(以post方式提交),原因是struts2.1.6在获取并使用了请求参数后才调用HttpServletRequest的setCharacterEncoding()方法进行编码设置 ,导致应用使用的就是乱码请求参数。这个bug在struts2.1.8中已经被解决,如果你使用的是struts2.1.6,要解决这个问题,你可以这样做:新建一个Filter,把这个Filter放置在Struts2的Filter之前,然后在doFilter()方法里添加以下代码
public void doFilter(...){
HttpServletRequest req = (HttpServletRequest) request;
req.setCharacterEncoding("UTF-8");//应根据你使用的编码替换UTF-8
filterchain.doFilter(request, response);
}
另一位大神的建议是 :
换个继承的类在源文件修改的那个是get的方式提交可以改变,用下面的这个是拦截post的提交方式,这是经常用到的,包你解决问题
public class MyFilter extends RequestProcessor {
@Override
protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
}
上面的参考可以到:http://bbs.csdn.net/topics/300114451
我的想法是:升级吧
- 再也不要用struts2.1.6了
- 再也不要吃方便面了
- 爆笑 妻子再也不要求隆乳了
- 海里的鱼虾什么的,再也不要带回家了
- 网管:我再也不要背这个黑锅了!
- 再也不想用SUM了
- 2008-04-05 | 张猪头,我再也不要理你了
- 再也不要讨论类似(i++)+(i++)+(i++)表达式的值了!
- 以后敲代码,第一行再也不要先写#include、import、using之类的了!
- xml 注释中不允许出现字符串“--“(再也不要来坑爹了,好么,XML)
- Bootstarp分页,每次项目都头疼的.再也不要重写了.复制下来重用
- 又是分页控件.移动端的.下拉形式的分页.再也不要做了
- Java 后台管理开发框架!CURD 一键生成,再也不要重复搬砖了!
- Java 后台管理开发框架!CURD 一键生成,再也不要重复搬砖了!
- 再也不想出差了
- 再也回不去了
- 再也不相信爱情了
- 再也不相信爱情了
- 扩展用户体验-ActionBar,actionbar title文字颜色等属性
- 3D数学之柏林噪声(Perlin Noise)
- <<正则表达式>>--黑马程序员
- UITableview
- 数据库启动之OPEN
- 再也不要用struts2.1.6了
- 恶心的jdcob--Could not initialize class com.jacob.com.ComThread
- Android AlarmManager的时间设定问题
- [Django实战] 第1篇 - 概述
- 中介者模式
- SVN的使用心得
- Win7解除权限下删除注册表的方法
- HDU 1372Knight Moves(简单的BFS)
- sdjzuoj 1132 最长公共子序列