Struts2.0.11升级到2.5.30
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、设计到的jar包
- 二、web.xml的更改
- 三、strust.xml的更改
- 四、jsp中strust相关标签的更改
- 总结
前言
由于Struts2被爆出了远程执行漏洞,现在一个老项目需要升级到2.5.30版本所出现的问题
一、设计到的jar包
asm-7.1.jar
commons-compress-1.20.jar
commons-lang3-3.8.1.jar
javassist-3.22.0-GA.jar
log4j-api-2.12.1.jar
log4j-core-2.12.1.jar
struts2-convention-plugin-2.5.30.jar
commons-fileupload-1.4.jar
commons-io-2.6.jar
freemarker-2.3.31.jar
ognl-3.1.29.jar
struts2-core-2.5.30.jar
struts2-spring-plugin-2.5.30.jar
本次升级,我所在的项目涉及到这些jar包,需要的可以去maven仓库去下载。还有最重要的,需要将xwork-2.0.4.jar删除,因为2.5.30版本中,struts2-core中已经集成了相关内容,不需要重复导入。
二、web.xml的更改
将org.apache.struts2.dispatcher.ActionContextCleanUp注释
<!-- <filter><filter-name>struts2Cleanup</filter-name><filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter> -->
<!-- <filter-mapping><filter-name>struts2Cleanup</filter-name><url-pattern>/*</url-pattern>
</filter-mapping> -->
将org.apache.struts2.dispatcher.FilterDispatcher改为org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
<filter><filter-name>struts2</filter-name><filter-class><!-- org.apache.struts2.dispatcher.FilterDispatcher -->org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>
三、strust.xml的更改
将2.0改为2.5
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">
改为
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN""http://struts.apache.org/dtds/struts-2.5.dtd">
在strust.xml中增加
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
在strust.xml中的package中增加regex:.* 这个一定要放在的标签后,要不会报错
在strust.xml中的package中增加strict-method-invocation=“false” 如下:
<package name="default" extends="struts-default" abstract="true" strict-method-invocation="false"><global-results><result name="successPage">/frames/global/success.jsp</result><result name="exceptionPage">/frames/global/exception.jsp</result></global-results><global-allowed-methods>regex:.*</global-allowed-methods><global-exception-mappings><exception-mapping exception="java.lang.Exception" result="exceptionPage" /></global-exception-mappings>
</package>
要将strust.xml中 redirect-action 改为redirectAction
<result name="success" type="redirect-action">mainFrame</result>
改为
<result name="success" type="redirectAction">mainFrame</result>
若是不改,会action重定向到jsp时报404
四、jsp中strust相关标签的更改
// 原版本
<s:url id="url" action="login">
<s:set id="str1" value="'string1 value'" />
<s:bean id="bean" name="beanName">
<s:iterator value="tradeList" id="trade" status="status">
<s:set name="myCode" value=" *** "/>
<s:property escape="true" var="someProperty"/>
//新版本
<s:url var="url" action="login">
<s:bean var="bean" name="beanName">
<s:iterator var="trade" value="tradeList" status="status">
<s:set var="myCode" value=" *** "/>
<s:property escapeHtml="true" var="someProperty"/>
总结
以上就是本次改造涉及的所有相关问题。
Struts2.0.11升级到2.5.30相关推荐
- Struts2升级到2.5.30,问题解决及过程记录
Struts2升级到2.5.30 文章目录 Struts2升级到2.5.30 前言 一.Struts2远程漏洞描述 二.本机环境描述 三.问题描述及解决办法 1.JDK版本需要1.7及以上 2.提升J ...
- mysql5.6.40升级到mysql8.0.11 的步骤
2019独角兽企业重金招聘Python工程师标准>>> 环境: 操作系统: rhel7.5 目标: mysql 5.6.22升级到mysql 8.0.11 mysql5.6.40升级 ...
- oracle 11.2.0.3RAC升级到11.2.0.4
oracle 11.2.0.3RAC升级到11.2.0.4 一.GRID集群软件升级 二.Oracle数据库软件升级 注意 照着大佬的教程一步一步做的 ,升级完看也挺简单,可能会出现一些突发状况,这个 ...
- struts2 框架升级从2.3.*,升级到2.5.30
问题描述: struts2 升级从2.3.*,升级到2.5.30 ,替换了structs相关jar,如果出现如下报错: `ispatcher initialization failed Unable ...
- oracle升级后出查询问题,oracle11.2.0.3升级到11.2.0.4出现查询性能问题,分析处理...
在上次我们的博客中提到帮客户升级oda一体机,将数据库从oracle 11.2.0.3升级到oracle 11.2.0.4,顺利升级后,却出现了一些性能问题,比如说查询表空间的情况时,性能比以前下降了 ...
- 三星android应用程序更新,基于Android 11:三星OneUI 3.0详细升级计划公布
基于Android 11:三星OneUI 3.0详细升级计划公布 2020-12-02 22:06:14 14点赞 18收藏 47评论 本周,三星方面公布了基于Android 11的OneUI 3.0 ...
- oracle_home 11.2,Oracle11.2.0.1升级到11.2.0.4
1.首先安装11.2.0.4数据库,安装步骤略过 2.开始升级 我已经下载了更新软件,所以选择第Skip software update 选择upgrade 按existing database继续下 ...
- 三星android的one ui,基于Android 11!三星OneUI 3.0详细升级计划公布
本周,三星方面公布了基于Android 11的OneUI 3.0具体升级安排,其最早出现了埃及地区手机用户的三星会员APP中. 2020年12月: Galaxy S20 Ultra.Galaxy S2 ...
- mysql 5.6升级8.0_Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法...
MysqL数据库版本从5.6.28升到8.0.11过程中部署项目时遇到的问题和解决方法,具体介绍如下所示: 首先这个项目用到了hibernate4.2.0,链接MysqL5.6.28没问题,换到8.0 ...
最新文章
- JavaScript中常见的错误,你犯了几个?
- SharedPreferences记住用户密码 态判断应用是否首次启动等
- Azure Backup 简介
- VMware Workstation 虚拟机性能优化指南
- 中南民族大学计算机图像处理实验报告,中南民族大学数字图像处理程序及图像...
- TwinCAT 3 系统程序
- 迷信一把:三才数理吉凶
- 2007年中国网络游戏市场分析及投资咨询报告(上下卷)
- mac风扇控制_如何监视和控制Mac的风扇
- 父爱如山,催泪微电影感动全网
- 【面试题】将ip地址转换成整数
- 前后端交互学习笔记(二):Node.js及npm学习
- Python在大数据处理中的实践运用,实践操作精选
- Firefox(火狐浏览器)丰富的Web开发辅助插件
- 软考哪个证书最有用?
- 解决springmvc返回json数据IE出现文件下载和json数据中文乱码问题
- excel函数实战(CEILING函数,ROUND函数,FLOOR函数的语法)
- java视频通话_Android视频通话Java代码
- 城市与区域密度模型(人口密度)
- 单页淘宝客要诀 短时间创造销售奇迹