Apache Struts Web框架是用于创建Java Web应用程序的免费开源解决方案。
可以在主页上找到更多信息。请阅读安全指南,可以浏览Javadocs。与使用Apache Struts有关的问题应将其发布到用户邮件列表中。
Web应用程序与传统网站不同,因为Web应用程序可以创建动态响应。许多网站仅提供静态页面。 Web应用程序可以与数据库和业务逻辑引擎进行交互以自定义响应。
基于Javaserver页面的Web应用程序有时会混合数据库代码,页面设计代码和控制流程代码。在实践中,我们发现,除非分开这些问题,否则较大的应用程序将难以维护。
在软件应用程序中分开关注的一种方法是使用模型视图控制器(MVC)体系结构。该模型代表业务或数据库代码,视图表示页面设计代码,并且控制器代表导航代码。 Struts框架旨在帮助开发人员创建使用MVC架构的Web应用程序。
该框架提供了三个关键组件:
该框架的架构和标签符合流行语。 Struts与常规的休息应用以及SOAP和AJAX等技术配合得很好。
Apache Struts项目是创建和维护Apache Struts框架的开源社区。该项目由一群各种各样的志愿者组成,他们在协作,基于社区的开源开发方面具有共同的价值观。 Apache Struts项目很荣幸能与我们的母公司组织分享这些价值:Apache软件基金会。
该项目之所以称为“支柱”,是因为该框架的目的是提供支持专业应用程序开发的“隐形基础”。 Struts提供的胶水将标准Java平台的各个元素加入一个连贯的整体中。我们的目标是通过生产缺失的作品来创建易于维护的企业级应用程序,以利用现有标准。
Apache Struts项目提供了Struts框架的两个主要版本。目前,我们仅维护Struts 2版本。建议将所有Struts 1.X应用程序升级到支柱2。请不要使用Struts 1.X启动新的应用程序开发,因为我们不再发布安全补丁。
Struts 2最初被称为Webwork 2。在独立工作几年之后,网络工作和Struts社区联合起来创建Struts 2。2.X框架是对珍贵解决困难问题的优雅解决方案的团队的最佳选择。
Apache Struts是一个现代,维护和功能齐全的网络框架。由于已经存在了多年并成长了一个庞大的用户群,因此很可能很快就会消失。不仅如此,我们在项目上都有专门的用户和开发人员。 Apache Struts是根据Apache许可证2.0许可的,这不会改变。我们保持干净的IP,您可以“安全”使用该项目。有时,当公司控制SCM时,您并不是“安全”使用项目。访问源代码并不意味着它是免费的。使用Apache Struts,您不仅可以自由地“做您想做的事”,甚至可以做出贡献(并非总是如此)。最重要的是:您也可以成为核心团队的一部分。
将其他技术与Apache Struts集成在一起通常非常容易。如果您使用的是Apache Cayenne,Hibernate或JDBC之类的ORM,则不会受到任何限制。 Apache Struts甚至与前端技术并不捆绑。在过去,那是JSP,然后来到了速度和自由标记。如今,您可以仅使用静态HTML和AngularJS构建Web应用程序。或者您可能想使用Sitemesh或Tiles。由于Struts的优雅易用的扩展机制,这一切都不是问题。
与其他面向组件的框架不同,我们不打算隐藏网络的无状态性质。我们认为建立在请求/响应周期上是完全可以接受的。我们还认为MVC模式还不错,只是因为它是旧的。实际上,我们认为Apache Struts Architecture既干净又易于理解。
当然,如果您希望在服务器端构建组件在前端渲染的服务器端,那么您很可能不需要支柱。这是一种不同的方法,它有望减少所需的HTML/JavaScript知识的量,并为视图层创建可重复使用的组件。诸如Wicket和Tapestry之类的项目很好地提供了此目的。与每个框架一样,您需要确定是否有意义地构建组件,或者您喜欢支柱方法。
Apache Struts社区本身不提供商业支持。
一些Apache Struts维护人员正在与Tidelift合作,以提供商业支持,并投资有偿工作时间,以改善Apache Struts框架。有关更多信息,请访问有关Apache Struts的Tidelift资源