The goal of the Apache Struts project is to encourage application architectures based on the "Model 2" approach, a variation of the classic Model-View-Controller (MVC) design paradigm. Under Model 2, a servlet (or equivalent) manages business logic execution, and presentation logic resides mainly in server pages.

The Apache Struts project encourages Model 2 designs in two ways. First, by providing open source frameworks and toolkits that help developers build applications for the web. Second, by providing friendly and honest mailing lists where both newcomers and veterans discuss how to use Struts software in their own Model 2 applications.

Originally, the Apache Struts software was distributed as one monolithic bundle. Today, the Struts project is comprised of several subprojects. Each subproject has its own website, documentation, and release cycle, and may be downloaded separately. The six original Apache Struts subprojects -- Core, Taglibs, Tiles, Extras, Applications, and EL -- are also being bundled into a distribution known as "Struts Classic".

Licence: Apache License