<?xml version="1.0"?>
<!--
// ======================================================================== 78
-->
<document>

    <properties>
        <title>Welcome</title>
    </properties>

    <body>

        <section name="About Apache Struts 2">
            <a name="Welcome"/>

        <div style="text-align:left">
        <a href="docs/home.html"><img src="images/struts2-merger2.png" alt="Struts 2 and WebWork merger" hspace="16" align="left"/></a>
        
        <p>       
         <strong>Apache Struts 2 is an elegant, extensible framework</strong> for creating enterprise-ready Java web applications. 
         The framework is designed to streamline the full development cycle, 
         from building, to deploying, to maintaining applications over time.
        </p>     
        
        <p>
         Apache Struts 2 was originally known as WebWork 2. 
         After working independently for several years, 
         the WebWork and Struts communities joined forces to create Struts<sup>2</sup>. 
         This new version of Struts is simpler to use and
         closer to how Struts was always meant to be.
        </p>      
        <p>
         For more about Apache Struts 2, visit
         <a href="docs/home.html">
            Getting Started.
         </a>
        </p>
        <p>
         To download Apache Struts 2, visit
         <a href="http://struts.apache.org/download.cgi#struts201">
            Apache Struts Distributions
         </a>
        </p>
        </div>
            
        </section>
        
        <section name="Build! Deploy! Maintain!">
            <ul>
            <li>
                <em>Build!</em> 
                <ul>
                <li>
                    <strong>Easy startup</strong> - A Maven archetype, template application, and bootstrap 
                    tutorial help jumpstart new projects.               
                </li>
                <li>
                    <strong>Improved Design</strong> - All framework classes are based on interfaces. 
                    Core interfaces are HTTP independent.
                </li>
                <li>
                    <strong>Enhanced Results</strong> - Unlike ActionForwards, Struts<sup>2</sup> Results can
                    actually help prepare the response. 
                </li>
                <li>
                    <strong>Enhanced Tags</strong> - Struts<sup>2</sup> tags don't just output data, but provide 
                    stylesheet-driven markup, so that we can create consistent pages with less code.
                </li>
                <li>
                    <strong>Stateful Checkboxes</strong> - Struts<sup>2</sup> checkboxes do not require special 
                    handling for false values.
                </li>
                <li>
                    <strong>Easy cancel handling</strong> - The Struts<sup>2</sup> Cancel button can go directly to 
                    a different action. 
                </li>
                <li>
                    <strong>POJO forms</strong> - No more ActionForms! We can use any JavaBean we like or 
                    put properties directly on our Action classes. No need to use all String properties! 
                </li>
                <li>
                    <strong>POJO Actions</strong> - Any class can be used as an Action class. Even the 
                    interface is optional! 
                </li>
                <li>
                    <strong>Easy Spring integration</strong> - Struts<sup>2</sup> Actions are Spring-aware. Just 
                    add Spring beans!
                </li>
                <li>
                    <strong>First-class AJAX support</strong> - The AJAX theme is backed by the popular Dojo Framework. 
                    AJAX tags look and feel just like standard Struts tags but provide greater interactivity and flexibility. 
                </li>
                <li>
                    <em>Coming in Struts 2.0.2</em> -- <strong>Zero Configuration</strong> - Optionally, replace XML configuration with convention and annotation. 
                </li>
                </ul></li>

                <li>
                    <em>Deploy!</em> 
                <ul>
                <li>
                    <strong>Easy plugins</strong> - Framework extensions can be added by dropping in a JAR. 
                    No manual configuration required! Bundled plugins add support for JavaServer Faces, 
                    JasperReports, JFreeChart, Tiles, and more ...
                </li>
                <li>
                    <strong>Easy portlets</strong> - Automatic portlet support allows portal and servlet 
                    deployments with no code changes.
                </li>
                <li>
                    <strong>Integrated profiling</strong> - Peek inside Struts to find the cycles are going!
                </li>
                <li>
                    <em>Coming in Struts 2.0.2</em> -- <strong>REST-ful URLs</strong> - Use search-engine friendly URLs, like category/action/movie/Thrillers. 
                </li>

                </ul></li>
                <li>
                <em>Maintain!</em> 
                <ul>
                <li>
                    <strong>Easy-to-test Actions</strong> - Struts<sup>2</sup> Actions are HTTP independent and 
                    can be tested without resorting to mock objects. 
                </li>
                <li>
                    <strong>Intelligent Defaults</strong> - Most framework configuration elements have a default 
                    value that we can set and forget. 
                </li>
                <li>
                    <strong>Easy-to-customize controller</strong> - Struts 1 lets us customize the request 
                    processor per module, Struts<sup>2</sup> lets us customize the request handling 
                    per action, if desired. 
                </li>
                <li>
                    <strong>Easy-to-tweak tags</strong> - Struts<sup>2</sup> tag markup can be altered by changing 
                    an underlying stylesheet. Individual tag markup can be changed by 
                    editing a FreeMarker template. No need to grok the taglib API!
                    <em>JSP, FreeMarker, and Velocity tags are fully supported.</em>
                </li>
                <li>
                    <strong>Integrating Debugging</strong> - Built-in debugging tools supporting profiling, 
                    problem reports, and interactive object model queries.
                </li>
                <li>
                    <em>Coming in Struts 2.0.2</em> -- <strong>Precise Error Reporting</strong> - All configuration elements, including properties that come from Java properties files, include location and line information. 
                </li>
                </ul></li></ul>
                
            <subsection>
            <p>
            For more about Apache Struts 2, visit
            <a href="docs/home.html">
              Getting Started.
            </a>
            </p>
            
            <p>
            To download Apache Struts 2, visit
            <a href="http://struts.apache.org/download.cgi#struts201">
               Apache Struts Distributions
            </a>
            </p>
            </subsection>
        </section> 
        
        <section name="Platform Requirements">
        
        <p>
        Apache Struts 2 requires:
        </p>
        
        <ul>
            <li>Servlet API 2.4</li>
            <li>JSP API 2.0</li>
            <li>Java 5</li>
        </ul>

        <p>
         An alternate set of JARs for Java 4 are also available.
         See the "J4" distribution. 
        </p>

        <p>
         For a full list of requirements, including dependencies used by optional plugins, 
         see <a href="http://struts.apache.org/2.x/struts2-core/dependencies.html">Project Dependencies</a>
        </p>
        
        </section>
        
        <section name="Licensing of Apache Struts Distributions">
        <p>        
            Apache Struts 2 source code and documentation is 
            licensed to the Apache Software Foundation (ASF) under one
            or more contributor license agreements. See the NOTICE file
            included in distribution for additional information
            regarding copyright ownership. The ASF licenses the source 
            code and documentation files in our Apache Struts distribution 
            to you under the Apache License, Version 2.0 (the "License"); 
            you may not use the Apache Struts product except in compliance
            with the License. 
        </p>

        <p>
            You may obtain a copy of the License at
            <a href="http://www.apache.org/licenses/LICENSE-2.0">
            http://www.apache.org/licenses/LICENSE-2.0</a>.
        </p> 

        <p>
            Unless required by applicable law or agreed to in writing,
            software distributed under the License is distributed on an
            "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
            KIND, either express or implied.  See the License for the
            specific language governing permissions and limitations
            under the License.  
        </p> 
        
        </section>        
    </body>
</document>
