近日,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 MVCGrailsStripes
如果想继续对Struts 1进行维护,我们可以做些什么? 
可以随意的为Struts 1进行贡献。有两种方法:从现有代码建立分支并进行改进或吸引社区人士来继续推动Apache Struts项目。如果有足够的人愿意并且有能力来继续提供补丁、进行维护以及长期管理的话,我们认为有这样的支援者的情况下,或许Struts 1还有希望。
此消息一出,微博人士也纷纷感慨:
蒼氵: 还记得进公司的第一件事就是把纯JSP的实现的功能用Struts1实现,好怀念啊.........感谢Struts1。
猫砂西瓜: 忘不了那一屏幕的form bean。
KDS-黑暗浪子: 逝去的总归要逝去,一切向前看。仔细想想,从03到07年我也用这个5年了。
Kaloo2010: 面试再问这个就有的说了。 识时务的马: 怀念一下,当初那个堆砌ActionForm的青葱岁月。