##### Struts 1

- Welcome
- Learning
- Roadmap
- Releases

##### Documentation

- User Guide
- FAQs and HOWTOs
- Release Notes
- Javadoc
- DTDDoc

##### Support

- User Mailing List
- Issue Tracker (JIRA)
- Wiki Pages

##### Components

- Struts Apps
- Struts EL
- Struts Extras
- Struts Faces
- Struts Scripting
- Struts Taglib
- Struts Tiles

##### Project Documentation

- Project Information
- Project Reports

## Learning About Struts

The official documentation for the framework is provided online and may be built locally from the source code distribution using Apache Maven 2. To build the documentation, change to the subproject's folder and run

$ mvn site

For more help with building the website, visit the Struts Maintenance - Website page.

Our documentation includes a User Guide,FAQs and Howto Guides, along with this top-level introduction.

The Javadocs and source code can also be browsed.

### Documentation Versions

You are invited to preview the documentation online, and then install the documentation bundle locally for closer study.

NOTE: If you are previewing the documentation on the website, most of the links in this section will refer to the Nightly Build. When learning about the framework, be sure to refer to the documentation for the version you are actually using.

### User Guide

Our concise User Guide introduces the Model-View-Controller architecture, and how it relates to the major components of the framework. If you want to find out "How it works", this is the place to start. Along with an architectural overview, the User Guide also includes detailed installation instructions and release notes for each version of the framework.

### FAQS and HOWTOs

Our FAQs and HOWTOs are designed to fill in any gaps left by the Javadocs or User Guide.

- Our Kickstart FAQ answers the most common non-technical questions people first ask about the framework.
- Our Newbie FAQ answers the most common technical questions asked developers using the framework for the first-time.

The HOWTO Guides are designed to help you get started with some of the optional extensions and components available for the framework. These include topics like using the Secure Socket Layer (SSL) protocol and how to unit test your applications.

If you have any comments on the pages you see here, they can be posted to the Wiki by following the link on the bottom of any page.

Of course, the only true documentation is the code itself. If you have any questions about how the framework actually works, do not hesitate to use the source. For the complete, buildable source code, see the "src" folder in your source distribution.

### Javadocs

For more detail about a specific class or package, our Javadocs are surprisingly comprehensive and carefully maintained. It is strongly recommended that you refer to the Javadocs for each class as you begin to use it. This will help ensure that important features and options are not overlooked. What you don't know, can't help you.

### Struts by Example

To help you see how it all fits together, several example applications are bundled in the "webapp" folder in the distribution that demonstrate using the framework.

- Blank - A simple template for starting new applications.
- Cookbook - See various techniques in action and view the source code in place.
- Examples - Various demonstration applications combined as separate modules:
  - Exercise - A set of test pages that also demonstrate use of the custom tags.
  - Upload - Demonstrates using the file upload facilities. (Based on Commons Upload.)
  - Validator - Demonstrates using the Validator extension.
- Faces - Demonstrates the Struts-Faces integration tag library.
- MailReader - The original Struts example application. Try me first!

There are also many third-party example applications available for study, including these three:

- AppFuse - Demonstrates using XDoclet with the framework, along with different security packages and Hibernate for database persistence.
- JPetStore - A streamlined version of the Java Petstore application implemented with Struts and iBATIS database layer.
- LogWeb - A Struts webapp for configuring Log4J at runtime within a servlet container.

Other open source applications built using the framework include:

- Roller - open source blog server.
- XPlanner - project planning and tracking tool for eXtreme Programming (XP) teams.

### Learning More About Struts

The Apache Struts Mailing Lists are a treasure trove of useful, interactive information. The user list tends to carry a high volume, so always check the published documentation and one of the MAILING LIST ARCHIVES before posting a new question. Like as not, it's already been asked and answered.

If you really can't find the answer to your question in the FAQs or one of the list archives, you can post your query to the Apache Struts User list -- BUT YOU MUST SUBSCRIBE TO THE USER LIST OR THE USER LIST DIGEST BEFORE POSTING.

The Apache Struts Wiki is a relatively new addition to our documentation team. Any Struts user (that means you!) is invited to post new material to the Wiki. However, the Wiki is not the place to ask incidental questions. All support questions should be directed to the Struts User list or other support forum.

The Roadmap page outlines our tentative plans for future development.

### Community Resources

The framework has attracted a large and robust community of developers, which have created a vast number of Struts related resources. Several pages on our wiki are devoted to listing Apache Struts resources.

For a comprehensive listing of all resources related to Apache Struts, including articles, books, and third-party extensions, for both Struts 1 and Struts 2, visit Struts Central.

### Books about Struts

The Apache Software Foundation does not provide printed manuals, but several third-party books about Struts are available. Visit Struts Central or the Apache Bookstore for complete listings.

##

Next: Roadmap