struts升级2.3.12到2.5.13

参考文章:
http://www.ituring.com.cn/article/495914
http://blog.csdn.net/zhangchen1987/article/details/78054960
http://blog.csdn.net/zhangchen1987/article/details/78054512
http://blog.csdn.net/educast/article/details/52212904

1.首先jdk1.6要升级到jdk1.7以上

2.struts2包替换

然后替换所有struts开头的jar包,

,删除了xwork-core-2.3.12.jar这个jar包

,commons-lang3-3.4.jar 升级至 commons-lang3-3.6.jar,

,freemarker-2.3.19.jar升级到freemarker-2.3.23.jar

,ognl-3.0.6.jar升级到ognl-3.1.5.jar

,log4j-1.2.13.jar升级到log4j-1.2.17.jar

javassist-3.20.0-GA.ja

删除了xwork-core-2.3.12.jar这个jar包 ,ac.getParameters()需要加个强转map

3.修改web.xml:

1)
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
修改成
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
2)
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
改成
<filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>

4.struts2配置修改

1)struts.xml部分的头部修改

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC  "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"  "http://struts.apache.org/dtds/struts-2.5.dtd">

问题报错:

org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException:
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException:
.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException

网上解决办法:http://ask.csdn.net/questions/260958

这是因为 struts2.5 为了提升安全性,添加了 allomethod 这么个玩意。

2)解决方法是在配置文件中添加:

package中添加顺序(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-allowed-methods?,global-exception-mappings?,action* 

<package name="exam" extends="json-default">
 <global-allowed-methods>regex:.*</global-allowed-methods>
<action name="user" class="userAction">
        ...
</action>
</package>

或者,针对action,在 action 块中添加

<allowed-methods>regex:.*</allowed-methods>

同样也支持在你的 action 上使用 @AllowedMethods 注解
默认的设置为

<global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>

全局设置是增量而不是覆盖的,支持正则和直接匹配方法,源码在这两段

// com.opensymphony.xwork2.DefaultActionProxy#prepare
// com.opensymphony.xwork2.config.entities.ActionConfig#isAllowedMethod

老项目因为爆出漏洞然后我找了一下午这个问题,最终打开研发模式,并搜索官网文档解决。 struts 真是个坑啊。


5.struts2页面修改

页面报错,否则报错如下:

Struts has detected an unhandled exception:
Messages:
/tagDef/export_record_now.jsp (line: 41, column: 4) Attribute id invalid for tag iterator according to
TLD
File:    org/apache/jasper/compiler/DefaultErrorHandler.java

1)页面中一些标签需要修改: jstl标签中的变量id要变为var如图:   id="yy"替换成var="yy"

2)页面中一些标签需要修改:jstl标签中的变量escape要变为escapeHtml如图: escape="false"要替换成escapeHtml="false" 

原文地址:https://www.cnblogs.com/tong2018/p/8391191.html

时间: 2024-10-30 14:48:42

struts升级2.3.12到2.5.13的相关文章

Centos 6.5内核升级为3.12.60

1. 官网下载稳定维护版本的内核 地址:https://www.kernel.org/ 我这里升级为linux-3.12.60 2. 上传至服务器并解压 xz –d linux-3.12.60.tar.xz tar –xvf linux-3.12.60.tar 3. 更新当前系统(需要保证服务器联网,默认使用的是Centos自己yum源,可以换国内的阿里云yum) yum update yum upgrade 4. 安装编译所需包 yum groupinstall "Development To

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304 一.   补丁描述 参考metalink doc: (Doc ID 19774304.8) Bug19774304 - 12.1.0.2 Bundle Patch 2 for Engineered Systems and DB In-Memory (Nov2014) (Doc ID 19774304.8) 二.   补丁包含 19649591 DATABASE BUNDLE PATCH 12.1.0.2.2 (O

四周第一次课(1月2日) 4.10/lvm讲解 4.11/lvm讲解 4.12/lvm讲解 4.13 磁盘故障小案例

四周第一次课(1月2日)4.10/lvm讲解4.11/lvm讲解4.12/lvm讲解4.13 磁盘故障小案例 onnecting to 192.168.183.128:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'. Last login: Tue Jan 2 19:34:17 2018[[email protected] ~]# ip add1: lo: <LOOPBACK,UP,LOWER_UP

8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下

8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 # 8.10 shell 特殊符_cut命令 --- - * 任意个任意字符 - ?任意一个字符 -  井号#注释字符  写命令的时候前面加一个#,那么这条命令就不生效,包括shell脚本里面也是,前面加个#表示这一行不生效,可以加一些注释说明的文字 ``` <[email protected] ~># #ls a.txt <[email

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例

4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例 4.10/4.11/4.12 lvm讲解 lvm讲解 4.10 lvm讲解上 安装下lvm 如果忘记了 lvm包 pvdisplay 查看 4.11 lvm 中 查看物理卷 除了pvdisplay命令还有一个 pvs命令也可以直观查看当前的物理卷 有了物理卷之后再来创建卷组 先用俩个物理卷创建一个卷组 vgcreate vg1 /dev/sdb1 /dev/sdb2 可以查看下卷组vgdiskplay 或者 vgs vgremo

2.10 环境变量PATH 2.11 cp命令 2.12 mv命令 2.13 文档查看cat/more/less/head/tail

2.10 环境变量PATH 2.11 cp命令 2.12 mv命令 2.13 文档查看cat/more/less/head/tail 2.10 环境变量PATH 如果你的目录在这里面 那么你敲命令句不需要敲绝对路径 但是如果再打开一个终端, 怎么让永久生效呢 系统有一个文件,是可以让它开机 或者是每次打开终端 都回去加载命令的 cat 一下看下文件有没有加上 命令 再打开一个终端 也是可以的 如果先取消掉 就重新改下变量PATH 还可以把里面的命令删掉 vi /etc/profile 重新退出

3月12日-3月13日百度有了大幅更新,不幸排名下降了很多

昨日百度有了大幅更新.不幸的是站的排名有了很大的下滑. 关键词是配资 股票配资.域名:www.ya-jing.cn 配资公司还好. 总结一下: 1.公司站的内容长久没有更新了.对于配资这种知识类属性的词指定下滑. 2. 百度更加注重体验了,排名上去的新站更侧重实用性和简洁性,不是所谓的内容堆积. 3. 工作精力或者重点应该放在用户体验上了.这是核心了. www.dlnulib.com 周公解梦 这个站的收录也正常了,上次被人攻击导致了很多垃圾的内容.现在回归正常了,但是很多其他的正常内容也中枪了

3.28日第七次作业12章沟通管理13章合同管理

3.28日第七次作业12章沟通管理13章合同管理   第12章.项目沟通管理   1.项目沟通管理包括哪些过程?(记)P349 答:1).沟通计划编制 2).信息分发 3).绩效报告 4).项目干系人管理 2.阻碍有效沟通的因素有哪些?P351-352 答:1).沟通双方的物理距离 2).沟通的环境因素 3).缺乏清晰的沟通渠道 4).复杂的组织结构 5).复杂的技术术语 6).有害的态度 3.沟通计划编制的第一步是什么?目的是什么?P353 答:沟通计划编制的第一步是干系人分析.其目的是得出项

五周第五次课(1月12日) 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号

五周第五次课(1月12日)8.10 shell特殊符号cut命令8.11 sort_wc_uniq命令8.12 tee_tr_split命令8.13 shell特殊符号相关测验题目:http://ask.apelearn.com/question/5437 扩展1. source exec 区别 http://alsww.blog.51cto.com/2001924/1113112 2. Linux特殊符号大全http://ask.apelearn.com/question/7720 3. so