struts升级到最高版本后遇到的问题。关于actionmessage传递问题。
2013-07-10 11:29
441 查看
Struts2升级到最新版本遇到的一些问题
首先是更换对应的jar,如asm、common、ongl、struts等等。更换后发现系统启动不了,按照网上的介绍,先后又更新了slf4j-log4j12-1.6.1.jar和cglib-2.2.2.jar后,起来了,但运行系统报错:NoSuchMethodError ...context.get(Object),修改web.xml,去掉struts-cleanup和FilterDispatcher,换上StrutsPrepareAndExecuteFilter,运行起来了。
仔细检查发现ongl对get和set的验证比原来严格了,比如原来action里有个变量aMap,方法getaMap()和setaMap()原来能用,现在就不能用了,必须改成getAMap()和setAMap().另外ongl原来允许set和get基本类型int,long等,升级后不再允许了,必须改成Integer、Long等对象类型。
另外遇到的一个问题就是原来有个action的result类型是chain,从前一个action将actionMessage带到下一个action,升级后发现带过来的actionMessage是null,google struts2 result chain actionMessage发现有高人遇到过这个问题,粘贴答案如下:
在网上查询N久,未解决。
一说必须使用 chain Result,我就是用的这个啊。
一说必须使用 chain Interceptor,我用的是 defaultStack,应该默认就有。
一说是需要使用 store Interceptor,感觉不对。
后在 ChainInterceptor 的 JavaDoc 中找到
引用
QUOTE:
By default Errors, Field errors and Message aren't copied during chaining, to change the behaviour you can specify the below three constants in struts.properties or struts.xml:
struts.xwork.chaining.copyErrors - set to true to copy Action Errors
struts.xwork.chaining.copyFieldErrors - set to true to copy Field Errors
struts.xwork.chaining.copyMessages - set to true to copy Action Messages
翻译后:
默认情况下,错误,现场的错误和消息都不会被复制在链接过程中,要改变行为,您可以指定在struts.properties或struts.xml中的下面三个常量:
struts.xwork.chaining.copyErrors - 设置为true,复制操作错误
struts.xwork.chaining.copyFieldErrors - 设置为true,复制字段错误
struts.xwork.chaining.copyMessages - 设置为true,复制行动消息
首先是更换对应的jar,如asm、common、ongl、struts等等。更换后发现系统启动不了,按照网上的介绍,先后又更新了slf4j-log4j12-1.6.1.jar和cglib-2.2.2.jar后,起来了,但运行系统报错:NoSuchMethodError ...context.get(Object),修改web.xml,去掉struts-cleanup和FilterDispatcher,换上StrutsPrepareAndExecuteFilter,运行起来了。
仔细检查发现ongl对get和set的验证比原来严格了,比如原来action里有个变量aMap,方法getaMap()和setaMap()原来能用,现在就不能用了,必须改成getAMap()和setAMap().另外ongl原来允许set和get基本类型int,long等,升级后不再允许了,必须改成Integer、Long等对象类型。
另外遇到的一个问题就是原来有个action的result类型是chain,从前一个action将actionMessage带到下一个action,升级后发现带过来的actionMessage是null,google struts2 result chain actionMessage发现有高人遇到过这个问题,粘贴答案如下:
在网上查询N久,未解决。
一说必须使用 chain Result,我就是用的这个啊。
一说必须使用 chain Interceptor,我用的是 defaultStack,应该默认就有。
一说是需要使用 store Interceptor,感觉不对。
后在 ChainInterceptor 的 JavaDoc 中找到
引用
QUOTE:
By default Errors, Field errors and Message aren't copied during chaining, to change the behaviour you can specify the below three constants in struts.properties or struts.xml:
struts.xwork.chaining.copyErrors - set to true to copy Action Errors
struts.xwork.chaining.copyFieldErrors - set to true to copy Field Errors
struts.xwork.chaining.copyMessages - set to true to copy Action Messages
翻译后:
默认情况下,错误,现场的错误和消息都不会被复制在链接过程中,要改变行为,您可以指定在struts.properties或struts.xml中的下面三个常量:
struts.xwork.chaining.copyErrors - 设置为true,复制操作错误
struts.xwork.chaining.copyFieldErrors - 设置为true,复制字段错误
struts.xwork.chaining.copyMessages - 设置为true,复制行动消息
相关文章推荐
- struts升级到最高版本后遇到的问题。关于actionmessage传递问题。
- Struts2 漏洞:Struts2.2.1版本紧急升级Struts2.3.15.1版本中遇到问题和解决方法,你中招了没?!
- struts2.3.16.3升级遇到无法动态访问action的方法的问题。
- 关于struts2.1.6前台传递中文参数到后台action出现乱码问题的解决办法
- struts2.3.16.3升级遇到无法动态访问action的方法的问题。
- App版本更新时对SQLite数据库升级或者降级遇到的问题
- 关于升级程序版本时version与build修改的问题
- 关于LanMsg版本升级的问题
- 关于Struts2.5版本报"Wrong method was defined as an action method: index"的解决方法
- 升级Android支持库版本遇到的两个问题
- 2016 cocoapods的安装和使用以及版本升级遇到的问题
- 关于web.xml的首页和struts的action的问题
- centos升级gcc版本遇到的一些问题
- qt4.8到qt5.2windows版本的升级遇到的实际问题.
- 详解2016 cocoapods的安装和使用以及版本升级遇到的问题
- 开发中遇到的JSP结合JS(关于参数传递的)小问题
- 关于struts2.5以后 遇到的几点改变以及动态调用方法问题
- 关于SpringBoot2.0版本使用过程中遇到问题
- 【Android】图片剪裁类库,解决com.android.camera.action.CROP在4.4版本以上遇到的intent类型问题
- 升级Android支持库版本遇到的两个问题