Struts2.0.14升級到2.3.4遇到的一些問題

Struts2.0.14升級到2.3.4遇到的一些問題

首先是更換對應的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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章