To help keep the content up-to-date, we maintain the Struts 2 Documentation as a Confluence space, which is automatically exported to plain HTML. We serve the HTML version online and bundle it with the distribution. But don't let the wiki format fool you! There are over 600 pages of documentation in this space, easily the equivalent of a full length book!
Apache Struts 2 is an elegant, extensible framework for building enterprise-ready Java web applications. Distributions of Struts 2 are available as a free download under the Apache License.
- For more about the Apache Struts project itself, visit the project web site.For more about Struts Plugins, visit
- Quickstart with Struts 2 Maven Archetypes.
- Struts 2 is extended using Plugins. A list of available plugins is available at the Struts 2 Plugin Registry.
- Tired of XML-based configurations, or need some extra agility? Try the Convention Plugin or its RESTful cousin, the REST Plugin.
- Interested in books, articles, and presentations about Struts? Check out some Other Resources.
- For other community-supported Struts resources, visit the Struts 2 Wiki.
The contents of the Struts 2 documentation wiki (what you're reading now) are distributed with each release, but maintained via the on-line wiki.
We've started planning the next version of Struts aka Struts 3 (or 2.5) which will break backward compatibility, if you want to join please add your two cents here.
The documentation is grouped into four areas.
Our tutorials are designed to help you get started with the framework ASAP. We offer an all-purpose "Bootstrap" tutorial as well as specialty tutorials on portlets and database access.
Our in-depth technical guides focus on specific components of the framework, such as the Core framework, Struts Tags, and optional Extensions, as well as migrating from Struts 1 or WebWork 2.
Our FAQs and Cookbook examples provide a wide range of rapid-fire "HOWTOs" in question-and-answer format.
Our security bulletins explain any security issues and their solutions
Books, articles, and presentations
- Starting with Struts 2 (Ian Roughley), Free PDF and print.
- WebWork in Action book (Patrick Lightbody, Jason Carreira), print only.
- Most of WW2 in Action applies to Struts 2. The Struts 2 package names changed, and we've added some features, but the fundamentals remain the same. From a technical perspective, Struts 2 is WebWork 3.
- Struts 2 Design and Programming (Bud Kurniawan), print-only, pre-order only
- Practical Apache Struts 2 Web 2.0 Projects (Ian Roughley), print-only, pre-order only
- Struts 2: The Complete Reference (James Holmes), print-only, pre-order only
- Ajax CRUD with Struts 2 and Tibco GI (Brian Walsh)
- Ajax support in struts 2.0 (Jesintha Priyadarshini L)
- AppFuse and Struts 2 (Matt Raible)
- CRUD with WebWork, Spring, and JSTL (Larry Meador)
- Easy CRUD with Struts 2 (QuickTime video with Matt Raible - 8 minute)
- Easy AJAX with Struts 2 (firstpartners.net)
- Getting Started with Struts2 (Wesley Wannemacher)
- Integrating Struts 2 + JSF + Facelets (Matt Raible)
- Leveraging Struts2 Type Conversion (David DeWolf)
- Mark's Struts 2 Cookbook (Mark Menard)
- Migrating Struts Apps to Struts 2 (Ian Roughly)
- Migrating to Apache Struts 2: A tutorial for Struts 1 Developers. (Ted Husted)
- Product Internationalization (Todd McCullough, Jive Software)
- Struts 2 from Square One Draft manuscript covering part one of a four-day training course (Ted Husted)
- Struts 2 Tags (Rose India)
- Struts 2 Tutorial Struts 2 with Spring and Hibernate using Eclipse (ArcTech Software)($)
- Struts 2 Tutorial (Rose India)
- Struts 2 wired by Spring (Daniel Ambrósio)
- Struts 2.0 Validations using Annotations (Krishna Srinivasan)
- Unit Testing Struts 2 Actions wired with Spring using JUnit (arsenlist)
- Animated Tutorial for Struts2 (Mohammad SeyedAlavi)
- Migrating From Struts 1 to Struts 2 presentation (Matt Raible)
- WebWork 2 presentation (Jason Carreira)
about Struts 2.
The Struts 2 Community Wiki is an additional resource. It is not distributed with Struts 2, and contributions to the community wiki do not require a CLA.
To suggest a change or a correction to any part of the documentation, log in and leave a comment on the appropriate page. We are always looking for help with the documentation!