一、struts2升级流程:由2.3.4升级到2.3.16.3
1、下载对应升级的strutsjar包,导入项目需要的jar包。本次升级,我项目只需要升级struts2-core-2.3.16.3.jar,struts2-spring-plugin-2.3.16.3.jar,xwork-core-2.3.16.3.jar
2、删除原来的jar包,引入新的jar包
3、修改web.xml配置文件:
①将struts的filter的class改为:
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
②注释掉struts-cleanup,如下:
<!-- struts升级为2.3.16.3 不需要这个filter-->
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>-->
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、修改struts.xml配置,增加:
<!-- 升级struts2.3.16.3 必须要设置这个为true-->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
因为新版的struts默认是将这个关闭,而之前版本是开启的,如果不开启这个会导致项目中类似loginAction!login.action之类的调用会报错,查看源码可知,新版的struts对于方法的截取不同
二、jquery升级:升级到1.11.1(本博客写时的最新版),由于2.X版本不兼容IE8,所以这个版本是目前可以升级的最高版本。具体可参照升级1.9的升级说明:点击打开链接。
下面说明的是最大程度不改目前js,只是升级内核的情况的方法,如果要全新的升级,也就是说项目中用到的每一个方法都是原生的在1.11.1种的方法的话,则需要对现有项目中所有不符合新版本的方法进行修改,下载的话也就不需要jquery-migrate-1.2.1.js,这个js是用于升级内核,并且还要让当前的js代码能够正常运行的一个过度的js。完整升级可参照上面的链接。
1、下载该版本jquery-1.11.1.min.js以及jquery-migrate-1.2.1.js
2、在页面中引入js,jquery-migrate-1.2.1.js在jquery-1.11.1.min.js的后面
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.2.1.js"></script>
3、测试,如果有特别的插件和新版的jquery冲突,则自己单独处理。
注意:
1、我在升级的过程中发现的一个问题,要将js中的关于checkbox的判断换成
$("#ele").attr("checked")=="checked"
而不是原来的true
2、其他兼容性问题具体问题具体分析了。