最近在維護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。
