因为一些必须的原因,需要将struts从2.0.8升级到2.1.8,悲剧由此发生。
这里记录了一些升级过程中问题的解决思路,还有些则是待解决的问题。希望有经验的同学建议建议。
1 redirect写法不被支持。
解决:去掉下划线变驼峰之后问题成功解决
2 出现html的unicode码问题。struts2.1.8默认使用property标签时会使用unicode进行输出,据说是为了安全,国际化等,但是我等小项目,不需要与这些大概念沾边的,能用就行三,而这次的升级,确实是一个痛苦的过程。
注:对于普通的页面,浏览器会将其转换成对应汉字,但是如果是使用ajax,则不会进行转换(当然也可以手动转换,但是修改地方特别多)
解决:网上传闻在标签中加上escape属性即可。但是我大致看了一下,使用标签的地方很多(是很多),要找出ajax的用法也不是容易的事情。
于是开始寻找批量解决的方式,找到struts的tld文件,再对应找到源码中的PropertyTag类,发现其默认设置为true,将其改成false后问题解决。
3 纠结的来了,至今未能找到好的解决方法
起因:
项目需要国际化支持,并且action中存放的actionMessage是动态的,写法如下:
List<String> a ...
if (条件1){
a.add("login.error");
} else if(条件2){
a.add('login.locked');
}...
setActionMessage(a);
在界面中以前的写法大致如下:
<div id = 'msg'><s:property value="getText('${actionMessage}')" /></div>
消息通过EL表达式提取出来,然后放入标签中执行,得到配置文件中的值。
但是因为安全的考虑,2.1之后的版本取消了这样的用法,再这样写的话会报错的。
初步跟踪了一下代码,发现最后跑到xwork里去了,而我确实对struts这块不熟,有对这块有经验的请赐教。如果解决,我会将方案记录下来。
最后抱怨几句,发现struts升级没考虑到向下兼容啊。升级太痛苦了。
还有就是struts2.08有时候会有请求阻塞的情况,不知道大家遇到过没有?就是请求提交到后台之后进不了action,此情况不稳定复现。
分享到:
相关推荐
在本文中,我们将探讨将Struts2从旧版本升级到2.5.30的过程中可能遇到的问题及其解决方案。 升级Struts2到2.5.30的主要目标是利用新版本提供的增强功能和安全补丁。Struts2的每个新版本通常会包含对前一版本的兼容...
Struts2.18是Apache Struts框架的一个版本,它是一个基于MVC(Model-View-Controller)设计模式的开源Java Web应用框架。这个框架的主要目的是为了帮助开发者构建结构清晰、易于维护的Web应用程序。在"struts2.18 ...
总的来说,从Struts2.3.24升级到2.5.26是一个涉及多方面考虑的过程,需要对新版本的特性、配置和兼容性有深入的理解。遵循最佳实践和官方指导,进行详尽的测试,可以确保平稳、顺利地完成升级。
Struts 2.18是Apache Struts框架的一个版本,它是Java Web开发中广泛使用的MVC(模型-视图-控制器)架构的一部分。这个版本的jar包特别针对MyEclipse集成开发环境进行了优化,提供了在MyEclipse中进行Struts 2应用...
4. **依赖管理**:升级过程中,需要更新所有相关的Struts2依赖项,如struts2-core、struts2-convention-plugin等。同时,确保其他依赖库(如Spring、Hibernate等)与新版本的Struts2兼容。 5. **拦截器链调整**:...
Struts2.2到Struts2.3的升级是一个重要的更新过程,涉及到多个方面的改动和优化,包括性能提升、安全增强以及新特性的引入。在升级过程中,我们需要关注以下几个关键知识点: 1. **依赖包的更新**:Struts2.3.32...
北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...
总结来说,将Struts2从2.0.xx或2.3.28.1升级到2.5.12是一个涉及多个步骤的过程,包括备份、下载新版本、更新配置、修改代码以及全面测试。这个过程对于保护你的应用免受潜在威胁至关重要,同时也能享受到新版本带来...
Struts2.18是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了创建企业级Java Web应用的过程。在这个"struts2.18 完整Demo含每个标签及DWR"的压缩包中,我们可以深入学习Struts2的核心...
Struts 2.3.35版本包含了所有必要的jar包,用于将现有的Struts 2应用程序从旧版本升级到这个更安全的版本。这一步通常涉及到替换Web应用中的旧jar文件,以确保所有的功能与最新的安全补丁兼容。 在进行Struts 2框架...
Apache官方已针对该漏洞发布安全公告,ApacheStruts 2.3.5 – 2.3.31版本及2.5 – 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)。该漏洞是由于上传功能的异常处理函数没有正确处理用户输入...
Struts2.18是Apache Struts框架的一个版本,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。Struts2在Web开发领域中扮演着重要的角色,因为它提供了一种结构化的、可扩展的方式来组织和控制...
struts2.0升级到struts2.1的工具,自动修改配置文件和页面
### Struts2.3.15.1版本升级到2.3.32详细流程 #### 背景概述 Apache Struts是一个流行的用于构建企业级Java Web应用程序的开源框架。Struts2作为Struts框架的第二代产品,提供了一个灵活的架构来支持MVC设计模式,...
Struts 2是Java Web开发中的一个开源框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化和可扩展的方式来...在实际操作中,应仔细阅读官方文档,理解升级过程中的注意事项,以确保平稳过渡。
### Struts2.5.16升级过程中遇到的问题详述 #### 一、概述 本文主要针对从旧版本Struts2框架升级至2.5.16版本时可能遇到的各种问题进行详细介绍,并给出相应的解决方案。这包括了jar包的替换与引入、配置文件的...
以上步骤概括了从Struts2 2.3.26升级到2.3.34的主要过程。每个项目都有其特定的环境和需求,因此实际操作时可能需要根据具体情况进行调整。遵循这些步骤,可以确保顺利地完成升级,同时享受到新版本带来的改进和优势...
整合struts2.18+spring3.0.2+hibernate3.5.1,全部都是目前最新版本。手动添加的jar包,没有任何冗余。数据库是mysql5.0,有一张表“Test”,里面有两个字段“testid”、“testvalue”。
总的来说,从Struts2 2.3.15.1升级到2.3.35是一个涉及多方面考虑的过程,包括安全性、兼容性、性能和稳定性。通过详尽的准备、测试和文档研究,可以确保这个过程顺利进行,同时提升应用的安全性和功能性。
在Struts2的升级过程中,还应该关注官方发布的文档和公告,了解新版本引入的改进和变更,以便更好地利用新功能并避免潜在问题。同时,保持框架的持续更新是防止安全威胁的有效手段,定期检查并应用最新补丁是良好...