1.参考strtus官方给出的建议
https://cwiki.apache.org/confluence/display/WW/Struts+2.3+to+2.5+migration
重点如下,红色字体重点关注:
StrutsPrepareAndExecuteFilter
The org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
was moved to org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
.
In web.xml replace this:
|
with that:
|
There were other package changes, please read Version Notes 2.5 for more details.
DTD
Struts DTD was updated to 2.5 version.
In struts.xml replace 2.3 DTD version:
|
with 2.5:
|
struts.xml要加上红色字体的下面几行配置。
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<package>
<default-interceptor-ref name="adminDefaultStack"/>
<global-results>
</global-results>
<global-allowed-methods>regex:.*</global-allowed-methods>
</package>
2.其他修改的地方和注意的地方
2.1原来的xwork-core单独的jar已经合并到了struts-core的jar包中了
2.1新增了HttpParameters和Parameters类和接口actionContext.getParameters().toMap();
如果自己写了一些过滤器,比如使用actionContext的getParameters()的返回值是HttpParameters而不是以前的Map对象了,如果要用到,最简单的方式是toMap转换下,也可以自己重新对getParameters().get***了解后,再做代码修改。
3.具体增加pom文件
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.5.20</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.20</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.5.20</version>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.21</version>
</dependency>
3.1有包用到了xwork-core,要屏蔽
<dependency>
<groupId>***.***</groupId>
<artifactId>***</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.struts.xwork</groupId>
<artifactId>xwork-core</artifactId>
</exclusion>
</exclusions>
</dependency>