blob: 8129288f518bfd3c35581d2d7349b364ba9ce2ba [file] [log] [blame]
<?xml version="1.0"?>
<document url="./learning.xml">
<!--
// ======================================================================== 78
-->
<properties>
<title>Learning - The Apache Struts Web Application Framework</title>
</properties>
<body>
<section name="Learning About Struts" href="Docs">
<p>
The <strong>official documentation</strong> for the framework is provided both
online and as a self-installing WAR in the distribution.
The <code>struts-documentation.war</code> includes our
</p>
<ul>
<li>
<a href="userGuide/index.html">User and Developer Guides</a>,
</li>
<li>
<a href="api/index.html">Comprehensive Javadocs</a>,
</li>
<li>
<a href="./faqs/index.html">FAQ and Howto Guides</a>,
</li>
<li>
and everything else you find here.
</li>
</ul>
<p>
You are invited to preview the documentation online and then install
the application locally for closer study.
</p>
<strong>NOTE:</strong> If you are previewing the documentation on the website,
most of the links in this section will refer to the <strong>Nightly Build</strong>.
When learning about Struts, <strong>be sure to refer to the documentation for
the version you are actually using</strong>.
The documentation is bundled with each distribution as an application that
you can install and use locally.
<p>
The concise Struts <a href="userGuide/index.html"><strong>User Guide</strong></a>
introduces the Model-View-Controller architecture, and how it relates to
the major components of Struts.
If you want to find out "How Struts 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.
</p>
<p>
Our <strong>Developer Guides</strong> are detailed technical references to the extensions and components provided in the
Struts distribution.
Included are package overviews and API reference for each of the Struts taglibs, along with guides to the
Struts Utilities and the Struts Validator.
The Developer Guides are designed as a day-to-day reference to help you get the most out of the standard
packages.
Links to the various Developer Guides are provided as part of
<a href="userGuide/index.html"><strong>User Guide</strong></a> menu.
</p>
<p>
For more detail about a specific class or package, the Struts
<a href="api/index.html"><strong>Javadocs</strong></a> are <strong>surprisingly
comprehensive and carefully maintained</strong>.
It is <em>strongly</em> recommended that you refer to the
<a href="api/index.html"> Javadoc</a> for each class as you begin to use
it.
This will help ensure that important features and options are not
overlooked.
<em>What you don't know, can't help you.</em>
</p>
<p id="faqs">
The Struts <strong>FAQs</strong> are designed to fill in any small gaps left by the
Javadocs or the User and Developer Guides.
</p>
<ul>
<li>The <a href="./faqs/kickstart.html">Kickstart FAQ</a>
answers the most common non-technical questions people first ask about
Struts.
</li>
<li>
The <a href="./faqs/newbie.html">Struts Newbie FAQ</a> answers the most
common technical questions asked by first-timer Struts developers.
</li>
<li>
The <a href="./faqs/helping.html">How to Help FAQ</a> answers the most
common questions about contributing to the Jakarta-Struts project.
</li>
</ul>
<p id="howtos">
The <strong>Howto Guides</strong> are designed to help you get started with some of
the optional extensions and components available for Struts.
These include topics like using the Secure Socket Layer (SSL) protocol
with Struts and how to unit test your Struts applications.
</p>
<p>
The <a href="http://wiki.apache.org/struts"><strong>Struts Wiki</strong></a> is a
relatively new addition to the Struts documentation.
All members of the Struts Community are invited to post comments to the Wiki, as well as the User List.
The Wiki is best suited for threads that you think are of lasting importance, while the mailing lists are best
suited for incidental questions.
</p>
<p>
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.
</p>
<p>
For more help, you might try the JGuru Struts knowledgebase at the <a href="http://jguru.com/faq/Struts">JGuru
FAQ</a> and <a href="http://jguru.com/forums/Struts">Forum</a>.
</p>
<p>
Of course, the only true documentation is the code itself.
If you have any questions about how Struts actually works, do not hesitate
to <em>use the source</em>.
For the complete, buildable source code to the entire Struts framework,
see the "src" folder in
<a href="http://jakarta.apache.org/site/sourceindex.html"><strong>your source
distribution</strong></a>.
</p>
</section>
<section name="Struts by Example" href="Examples">
<p>
To help you see how it all fits together, several example applications are bundled with the Struts
distribution:
</p>
<ul>
<li>
Blank - A simple template for starting new Struts applications.</li>
<li>
Exercise-Taglib - A set of test pages that also demonstrate use of the custom tags.</li>
<li>
Documentation - The Struts documentation bundle, as seen on the website.</li>
<li>
<strong>MailReader</strong> - The original Struts example application. <em>Try me first!</em></li>
<li>
Tiles-Doc - Extensive demonstration of Tiles extension.</li>
<li>
Upload - Demonstrates using the file upload facilities. (Based on Commons Upload.)</li>
<li>
Validator - Demonstrates using the Validator extension.</li>
</ul>
<p>
These applications are provided as standalone WARs in the binary distribution.
The source code for each application is available under <code>WEB-INF/src</code> in the binaries and under the
<code>web</code> package in the source distribution.
</p>
<p>
There are also many third-party example applications available for study, including these:
</p>
<ul>
<li>
<a href="http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse">AppFuse</a> - Demonstrates using XDoclet with
Struts, along with different security packages and Hibernate for database persistence.
</li>
<li>
<a href="http://www.ibatis.com/jpetstore/jpetstore.html">JPetStore</a> - A streamlined version of the Java
Petstore application implemented with Struts and iBATIS database layer.
</li>
<li>
<a href="http://www.codeczar.com/products/logweb/index.html">LogWeb</a> - A Struts webapp for configuring
Log4J at runtime within a servlet container.
</li>
</ul>
</section>
<section name="Learning More About Struts" href="More">
<p>
The Struts <a href="using.html#Lists">Mailing Lists</a> are a treasure trove of
useful, interactive information. The user list tends to carry a high
volume, so always check the published documentation and the
<a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listId=42">
<strong>MAILING LIST ARCHIVE</strong></a> before
<a href="http://www.catb.org/~esr/faqs/smart-questions.html">posting a
new question</a>.
Like as not, it's already been asked and answered.
</p>
<p>
If you really can't find the answer to your question in the
<a href="#faqs">FAQs</a> or
<a href="http://mail-archives.apache.org/eyebrowse/SummarizeList?listId=42">
list archive</a>, you can post your query to the Struts User list --
<strong>BUT YOU MUST SUBSCRIBE TO THE
<a href="mailto:struts-user-subscribe@jakarta.apache.org">USER LIST</a>
OR THE <a href="mailto:struts-user-digest-subscribe@jakarta.apache.org">
USER LIST DIGEST</a> BEFORE POSTING</strong>. </p>
<p>
Please note that the Struts User list enjoys a "casual friday" policy.
More off-topic messages are tolerated on Fridays so long as the
message is prefixed with the token [FRIDAY].
If you'd rather not be troubled by these postings, please set your
mail filter accordingly.
Posting [FRIDAY] articles on any other weekday is <strong>strongly
discouraged</strong>.
We thank you for your cooperation.
</p>
<p>
The Struts <a href="http://wiki.apache.org/struts"><strong>Wiki</strong></a> is a relatively
new addition to our documentation.
Any member of the community (that means you!) is invited to post new material to the Wiki.
However, the Wiki is not the place to ask incidental questions.
<strong>All support questions should be directed to the <a href="using.html#Lists">Struts User list</a> or
other support forum</strong>.
</p>
<p>
There is also a set of Wiki pages devoted to comments on the documentation.
To comment on the documentation, follow the "Comments?" link at the bottom of any page.
</p>
<p>
The <a href="status.html#roadmap"><strong>Roadmap</strong></a> page outlines our tentative plans for future development.
</p>
</section>
<section name="Struts Community Resources" href="resources">
<p>
Struts has attracted a large and robust community of developers.
Some of these developers have a created an independant SourceForge site to promote new extensions to the Struts framework.
As a service to our community, the Struts SourceForge site maintains an
<a href="http://struts.sf.net/community/index.html">extensive directory of Struts resources</a>. including.
</p>
<ul>
<li>
<a href="http://struts.sf.net/community/articles.html">articles</a>,
</li>
<li>
<a href="http://struts.sf.net/community/books.html">books</a>,
</li>
<li>
<a href="http://struts.sf.net/community/examples.html">sample applications</a>,
</li>
<li>
<a href="http://struts.sf.net/community/tutorials.html">tutorials</a>, and more!
</li>
</ul>
</section>
<section name="Books about Struts" href="books">
<p>
The Apache Software Foundation does not provide printed manuals,
but several third-party books about Struts are available.
A current list of books about Struts is maintained by the
<a href="http://struts.sf.net/community/index.html">Struts Community Resources area</a>.
</p>
</section>
<section>
<p class="right">
Next: <a href="acquiring.html">Acquiring Struts</a>
</p>
</section>
</body>
</document>