免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

Apache Struts 1 宣告退出舞台

  • 2013-04-08
  • 本文字数:1465 字

    阅读完需:约 5 分钟

近日,Apache 官方网站发布了关于 Apache Struts 1 EOL(End-Of-Life)新闻稿通告。该新闻稿指出,2013 年4 月5 日,Apache Struts 项目团队正式通知广大开发者,Struts 1.x 开发框架结束使命,并且官方将不会继续提供支持。

Struts 1.x 项目创建于 2000 年,最新版本 1.3.10 发布于 2008 年 12 月。同期,Struts 社区将精力专注于推动 Struts 2 框架的发展,截止到 2013 年 4 月,已发布了 23 个版本。据通告称:

此次宣告 Struts 1.x 退出舞台并不再提供支持,主要是因为缺少足够的志愿者来提供支持。

与此同时,在新闻稿中,Apache Struts 团队强烈建议大家学习 Struts 2 框架,Struts 2 更加现代、高度解耦、功能丰富且易于维护。就在 3 月,Apache Struts 刚刚发布了 2.3.12 版,这个版本为维护版本,包含了一些很小的改进,如:

  • 重构所有验证器,可通过 OGNL 设置参数
  • Tag 的 required 属性改名为 requiredLabel 支持 HTML5 的 required 属性
  • 三个新的 Tiles 插件,用于支持 Tiles 3 结果类型
  • 改进支持 JBoss 5 的 Convention 插件

此外,对于正在使用 Struts 1.x 的开发者或团队,Apache Struts 团队就常见问题给出了回答:

Struts 1.x 不再提供支持后,现有资源如何处理?

所有资源将会保留,Apache Struts 首页将会提供相关文档的链接,同时也会保留 Struts 1.x 各个版本的下载地址。所有的 Struts 1 源代码均可在 Apache Struts 代码仓库中找到,并且永久保留。所有发布的 Maven 构件(Maven artifacts)均可通过 Maven Central 访问。

如果以后发现和 Struts 1.x 相关的安全问题或严重的 Bug,是否还会有相应的修复?

目前来看,是不会的,这也是要宣布 EOL 的原因。既然现在已经宣布不再提供支持,开发者也需要寻找移植方案,将现有的 Struts 1 代码移植到其他 Web 框架上。

现在是不是就需要将 Struts 1 从我的项目中删除?

就目前 Struts 团队了解的情况来看,不必立即删除。然而需要意识到的是,未来将不会有针对安全和 Bug 问题的修复,一旦未来发现上述情况,开发团队需要自己来应对。

如果需要将现有项目从 Struts 1 移植到其他 Web 框架,有什么推荐?

您也许会意识到,目前为止 Struts 1 还没有直接的替代品。您需要根据现有代码的情况,来选择新的开发框架,并通过调整代码来适应新的框架。虽然有很多基于 Action 的 Java Web 开发框架都可以实现这个效果,但我们还是会推荐 Struts 2。因为他更先进、高度解耦、功能丰富且更易于维护。他继承了 Struts 1 的核心理念,但在架构和 API 设计上要比 Struts 1.x 先进很多。此外,其他的替代框架也不错,如 Spring Web MVC Grails Stripes

如果想继续对 Struts 1 进行维护,我们可以做些什么?

可以随意的为 Struts 1 进行贡献。有两种方法:从现有代码建立分支并进行改进或吸引社区人士来继续推动 Apache Struts 项目。如果有足够的人愿意并且有能力来继续提供补丁、进行维护以及长期管理的话,我们认为有这样的支援者的情况下,或许 Struts 1 还有希望。

此消息一出,微博人士也纷纷感慨:

蒼氵: 还记得进公司的第一件事就是把纯 JSP 的实现的功能用 Struts1 实现, 好怀念啊…感谢 Struts1。

猫砂西瓜: 忘不了那一屏幕的 form bean。

KDS- 黑暗浪子: 逝去的总归要逝去,一切向前看。仔细想想,从 03 到 07 年我也用这个 5 年了。

Kaloo2010: 面试再问这个就有的说了。 识时务的马: 怀念一下,当初那个堆砌 ActionForm 的青葱岁月。

此外,为了给读者提供更好的参考,InfoQ 中文站上也为您准备了相关内容:

2013-04-08 19:115695
用户头像

发布了 156 篇内容, 共 51.0 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

基于K-means聚类算法进行客户人群分析

华为云开发者联盟

人工智能 机器学习 华为云 12 月 PK 榜

基于随机森林算法进行硬盘故障预测

华为云开发者联盟

人工智能 机器学习 华为云 12 月 PK 榜

Java中Map集合的三种遍历方式

@下一站

Java 程序设计 map 12月日更 12月月更

架构实战营模块二 _ 作业

原城

架构实战营 #架构实战营 「架构实战营」

什么是DevSecOps?理解DevOps安全性

华为云PaaS服务小智

DevOps

LED显示屏行业真的需要8K分辨率吗?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

如何通过 NFTScan 捕获早期 NFT 项目投资趋势

NFT Research

区块链 NFT

ChatGPT进化的秘密

OneFlow

人工智能 机器学习 深度学习 GPT

Android开发环境搭建

芯动大师

android 开发环境搭建 Androidstudio

linux运维常用脚本

@下一站

12月日更 12月月更 shell脚本 程序代码

Zebec Chain缘何能成为新晋应用链,熊市下又为何值得我们关注?

西柚子

VUE 前端文本输出为超文本

HoneyMoose

2022-12-23:portainer是docker的web可视化工具。如果根据docker部署去写yaml,默认local是k8s,而不是docker,这不符合需求,需要修改yaml。请问部署在

福大大架构师每日一题

云原生 k8s k3s 福大大

贾斯特里尼&布鲁克斯为何被称为葡萄酒典范?

联营汇聚

还在手动发早安,教你用java实现每日给女友微信发送早安

华为云开发者联盟

Java 开发 代码 华为云 12 月 PK 榜

YOLOv5全面解析教程②:如何制作训练效果更好的数据集

OneFlow

人工智能 深度学习 数据集

云渲染哪个平台费用低?云渲染怎么收费

Renderbus瑞云渲染农场

云渲染 云渲染收费

极客时间运维进阶训练营第九周作业

9527

跨平台应用开发进阶(四十)自定义插件及引用

No Silver Bullet

uni-app 跨平台应用 12月月更 自定义插件

超越10倍开发者

俞凡

研发效能

MMEval正式支持OneFlow评测

OneFlow

机器学习 深度学习 算法

Spring单例和静态方法

hasWhere

贾斯特里尼&布鲁克斯葡萄酒,用品质征服世界

联营汇聚

架构误区系列9:强扭的「复用」

agnostic

270年经典传承,贾斯特里尼&布鲁克斯——红酒中的高端代表

联营汇聚

华为云CodeArts Req需求管理工具,7大特性限时免费体验

华为云开发者联盟

需求管理 开发 华为云 12 月 PK 榜

【FAQ】在华为鸿蒙车机上集成华为帐号的常见问题总结

HarmonyOS SDK

HMS Core

世界元素多元化发展,法国名酒贾斯特里尼&布鲁克斯受推崇

联营汇聚

Zebec Chain缘何能成为新晋应用链,熊市下又为何值得我们关注?

股市老人

【Java基础】Win10如何配置jdk环境变量(配置java环境变量)

No8g攻城狮

Java、 java 并发 Java IO

Apache Struts 1宣告退出舞台_Java_贾国清_InfoQ精选文章