struts2.0升级到struts2.1.6遇到的问题汇总

问题一 web.xml的变化
struts2.1中的写法为:

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

问题二 零配置的变化
在struts2.0中,一直使用的是codebehind插件,在struts2.1中已废弃codebehind,改用convention插件,这个插件使用比较简单,根据官方的文档很全,很容易就能上手,这里把我convention的参数写下来:

struts.convention.result.path=/WEB-INF/jsp/
struts.convention.action.name.lowercase=false
struts.convention.action.name.separator=
struts.convention.default.parent.package=default
struts.convention.package.locators.basePackage=com.mysite.web.action

问题三 tabbedPanel标签
一直在使用struts2.0中的s:tabbedPanel标签,这个标签使用的是dojo脚本框架,在struts2.0中是自带的,struts2开发小组在struts2.1中把dojo做为插件的形式存在,对应的写法也发生了变化,下面是struts2.1中的写法:
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>

……

<sx:head/>
<sx:tabbedpanel id="tabbedpanel1" cssStyle="width: 100%; height: 100%" doLayout="true" >
<sx:div id="column1" label="栏目一" loadingText="加载中……"
href="url1.action" cssStyle="display:none">
</sx:div>
<sx:div id="column2" label="栏目二" loadingText="加载中……"
href="url2.action" cssStyle="display:none">
</sx:div>
</sx:tabbedpanel>

问题四 乱码问题
原来在struts2.0里面正常的内容,在struts2.1.6中会乱码,struts2.1.6居然还敢声称GA版,这种bug都有,汗一个,从官方找到的解决办法,
修改strut2.1.6源文件org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,把doFilter方法中由:

prepare.createActionContext(request, response);
prepare.assignDispatcherToThread();
prepare.setEncodingAndLocale(request, response);
改为:

prepare.setEncodingAndLocale(request, response);
prepare.createActionContext(request, response);
prepare.assignDispatcherToThread();
不想修改源文件的话,把StrutsPrepareAndExecuteFilter类的代码copy一份,然后web.xml配置成你copy的这份也可以

问题五 could not be resolved as a collection/array/map/enumeration/iterator type
在s:select,s:s:checkboxlist标签中使用集合,如果集合为空时,会报这个错误,在struts2.0中不会报这个错误

问题六 float类型变量值为0.0时,设置set方法时出错
目前没有发现好的解决方法,替待解决方法是去掉set方法,提交页面需要设置值时,通过request.getAttribute方式获取

还有一些其他问题,还在整理中……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值