Struts2.1.6 StrutsPrepareAndExecuteFilter bug
在用strust2.1.6做小项目,结果居然发现在post数据的时候,居然有乱码。
自认为对编码也算了解,立马check应用的content type,struts2配置的struts.locale,struts.i18n.encoding,没错,都是统一使用了UTF-8。
那是为什么呢?没办法,只能debug应用,结果发现:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
try {
prepare.createActionContext(request, response); prepare.assignDispatcherToThread();
prepare.setEncodingAndLocale(request, response);
request = prepare.wrapRequest(request);
ActionMapping mapping = prepare.findActionMapping(request, response);
if (mapping == null) {
boolean handled = execute.executeStaticResourceRequest(request, response);
if (!handled) {
chain.doFilter(request, response);
}
} else {
execute.executeAction(request, response, mapping);
}
} finally {
prepare.cleanupRequest(request);
}
}
1) prepare.createActionContext(request, response);
2) prepare.setEncodingAndLocale(request, response);
setEncodingAndLocale居然在createActionContext之后,在没有设置正确的encoding之前,解析request中的parameters,能成吗?
无奈之下,只能暂时用CharacterEncodingFilter这个filter设置request的character,猥琐地临时解决问题。
今天打算向Struts提交bug的时候,发现该bug在2.1.7版本中被修复,详见:https://issues.apache.org/struts/browse/WW-3075%3Bjsessionid=3EAC5B44A949CA77B4471AA0D45754E9?page=com.atlassian.jira.plugin.ext.subversion%3Asubversion-commits-tabpanel
哎,在使用2.1.7之前,先用CharacterEncodingFilter吧 :)
分享到:
相关推荐
struts2.1.6解决乱码 补充 struts2.1.6解决乱码 补充 struts2.1.6解决乱码 补充 struts2.1.6解决乱码 补充
解决Struts2.1.6中文乱码问题,在用STRUTS2.1.6时,中文问题不好解决,写拦截器是不管用,对不熟悉Spring的人来说用SPRING来转化也不容易进行,经过自己的学习发现,其实在有中文提交的时候,服务器接收的是有规律的...
struts2.1.6 解决日历问题。区别struts2.0
决定解决 struts2 中文乱码处理,本人亲测试,可以不用升级到2.18
里面有我们要用到的struts-plugin.xml,关于这个JAR包,经过本人的测试和网上的搜索,得出最新的0.7版本在cglib方面存在着问题, 2,在struts2.1.6的配置文件中进行配置,就是返回的类型是json,并且要为JSON数据单独创建...
struts2.1.6apps!现在官网上都只有最新版本的。但是对于初学者学习struts2.1.6来说。这是个很好的资源、
全部 struts2.1.6 jar包 全部 struts2.1.6 jar包 全部 struts2.1.6 jar包
struts2.1.6.jar包,lib jar包
Struts2.1.6 Spring2.5.6 Hibernate3.3.2_jar
struts2.1.6lib struts 2.1.6 lib 核心类库
struts2.1.6api. 想学习struts2的朋友们。希望能喜欢这个api,我也希望能给你们一点帮助。
struts2.1.6 API chm文件格式的是本人自己创建的没有版权问题
struts2.1.6-全包All,以及包括struts2.1.6源码,实用有效
struts2.1.6 所有jar包和官方源码
struts2.1.6apps struts 2.1.6 apps 示例应用
Struts2.1.6-all.zip 之 lib 欢迎下载
struts2.1.6开发包,其中有个包是api文档和一个源码包。将其他7个包放在项目下的Lib目录下,配置web.xml文件就Ok了
由于之前上传过一次struts2.1.6jar all.zip,但是里面打包错了,那个包是hibernate内容,请大家用struts2的用户不要再下载了,请下载本包实用。
struts2.1.6-lib.rar struts2.1.6-lib.rar struts2.1.6-lib.rar
Struts 2.1.6源码 要好好研究的