最近在维护SSH(Struts2+Spring+Hibernate)框架写的老项目,项目想要由jdk 7升级到jdk 11,固Spring、Struts2等版本也要跟着升级,下面对Struts2版本由2.0升级到2.5做个总结。
1、首先替换核心jar包
之前工程中的jar包:
替换jar包后:
(注意:并不是图片里所有的都要放到自己的项目中,自己的项目中用到了哪些,就替换掉哪些。删除原工程"xwork-2.0.4.jar",因为这个类库struts升级到2.5版本已经包含在struts2-core中了,所以一定要删除。)
2、修改web.xml
<filter>
<filter-name>struts2</filter-name>
<!-- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> -->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
3、修改struts.xml配置文件
a、修改struts.xml的头部信息,把版本换成2.5
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
其它有关如:struts-admin.xml等文件也需要把版本修改成2.5
b、修改由spring担任工程bean
<!-- 由spring担任工程bean -->
<constant name="struts.ObjectFactory" value="spring"></constant>
4、修改jsp的struts标签,新版本里有两处明显区别。有关jsp页面修改部分
a、<s:bean id="locales" name="com.vo.srs.common.Locales">要修改成<s:bean var="locales" name="com.vo.srs.common.Locales">
b、<s:iterator value="#session.role" id="lai">要修改成<s:iterator value="#session.role" var="lai">
c、<s:set name="lmenu" value="{'Rating','Reporting','Reporting2'}"></s:set>
要修改成<s:set var="lmenu" value="{'Rating','Reporting','Reporting2'}"></s:set>
d、<s:property value="vo.sourcings3[#status.index]" escape="false"/>要修改成<s:property value="vo.sourcings3[#status.index]" escapeHtml="false"/>
5、struts2.5版本适用jdk1.7或者以上,struts最新版struts2-core-2.5.20.jar,适用于jdk11。