Visit the Struts 2 Wiki for other community-support resources.
The Struts 2 distributions are classified "test-build" quality but are suitable for new development by early adopters.
For your convenience, a one-stop all distribution is available. Individual elements of the distribution may also be downloaded separately.
The entire distribution, including all the elements. (43mb)
The example applications, as ready-to-deploy WARs. (22mb)
Just the blank application, ready to deploy as a template for new development. (Also included in apps.) (3mb)
The documentation, as provided on the website. (11mb)
The essential dependencies, including the Struts 2 JARs. (3mb)
The source code for the framework, ready to build as a Maven project. (18mb)
The Java 1.4 versions of the Struts and XWork JARs (prepared using RetoTranslator). (2mb)
If you are migrating from a prior version, see Release Notes 2.0.1 in the Migration Guide.
When a distribution is first made available, it is rated as a development build or "snapshot". Later, the quality of the distribution may be upgraded to "Beta" or "General Availability", based on feedback from the community, and then made available through ibiblio and other public Maven repositories. To obtain an early distribution via Maven, you can specify the ASF Snapshot repository in your POM.
<repositories> <repository> <id>ASF_SNAPSHOT_M2</id> <name>ASF Maven 2 Snapshot</name> <url>http://people.apache.org/repo/m2-snapshot-repository</url> </repository> </repositories>
Apache Struts 2 in a Nutshell
Most often, the Model is represented as a graph of JavaBean objects. The Model should do the "heavy lifting", and the Action will act as a "traffic cop" or adapter. The framework provides sophisticated, automatic type conversion to simplify transfering data between rich domain objects and text-only HTTP requests.
architecture in a
Struts 2 provides a flexible control layer based on standard technologies like Java Filters, JavaBeans, ResourceBundles, Locales, and XML.
- The web browser requests the page
- The Filter Dispatcher looks at the request and determines the appropriate Action<
- The Interceptors automatically apply common functionality to the request like workflow, validation, and file upload handling
- The Action method executes, usually storing and/or retrieving information from a database
- The Result renders the output, be it HTML, images, or PDF, to the browser