<?xml version="1.0" encoding="ISO-8859-1"?>
<faqs title="Frequently Asked Questions">

<!-- 
    Maven FAQ PlugIn 1.2 will allow multiple faqs but, for now, we'll just 
    generate them from xdocs. This file is just an example of a FAQ file for
    the FAQ plug-in and is not maintained.
-->     
      
  <part id="general">
    <title>General</title>

    <faq id="why">
      <question>Why do we need Struts?</question>
      <answer>
        Java technologies give developers a serious boost when creating and 
        maintaining applications to meet the demands of today's public Web 
        sites and enterprise intranets. Struts combines Java Servlets, Java 
        ServerPages, custom tags, and message resources into a unified 
        framework. The end result is a cooperative, synergistic platform, 
        suitable for development teams, independent developers, and everyone 
        in between.
      </answer>
    </faq>

    <faq id="how">
      <question>How does Struts work?</question>
      <answer>
        Java Servlets are designed to handle requests made by Web browsers. 
        Java ServerPages are designed to create dynamic Web pages that can turn
         billboard sites into live applications. Struts uses a special Servlet 
         as a switchboard to route requests from Web browsers to the appropriate 
         ServerPage. This makes Web applications much easier to design, create, 
         and maintain.
      </answer>
    </faq>
    
    <faq id="compatible">
      <question>Is Struts compatible with other Java technologies?</question>
      <answer>
        Yes. Struts is committed to supporting industry standards. Our lead 
        developer is a member of <a id="http://java.sun.com/aboutJava/communityprocess/jsr/jsr_052_jsptaglib.html">JSR052</a>, 
        Sun's Expert group for developing a standard library of custom JSP 
        tags. A primary design criteria is that Struts must be compatible with 
        Sun's J2EE platform for corporate enterprises. In fact, Struts really 
        acts as an integrator of Java technologies, so that they can be used in 
        the &quot;real world&quot;.
      </answer>
    </faq>

    <faq id="who">
      <question>Who wrote Struts?</question>
      <answer>
	    <p>Struts was created by Craig R. McClanahan, and donated to the Apache 
	    Software Foundation in May 2000. Craig is the primary developer of both 
	    Struts and <a id="http://jakarta.apache.org/tomcat/index.html">Tomcat 4</a>, 
	    the basis for the official reference implementation for a servlet 2.3 
	    and JSP 1.2 container. With stable releases of Struts and Tomcat 4 in 
	    circulation, Craig is now the Specification Lead for 
	    <a id="http://jcp.org/jsr/detail/127.jsp">JavaServer Faces (JSR-127)</a>, 
	    and is the Web Layer Architect for the Java2 Enterprise Edition (J2EE) 
	    platform as a whole.</p>
	    <p>There are now many active committers to the Struts project, working 
	    cooperatively from around the globe. Other Java developers are invited 
	    to <a id="helping.html#contribute">contribute to the project</a>. 
	    Struts is an <a id="http://jakarta.apache.org/">Apache Jakarta</a>  
	    project, with the common mission to &quot;provide commercial-quality 
	    server solutions based on the Java Platform that are developed in an 
	    open and cooperative fashion&quot;. All told, 17 individual developers 
	    and committers contributed to the Struts 1.0 codebase.</p>
      </answer>
    </faq>

    <faq id="struts">
      <question>Why is it called Struts?</question>
      <answer>
        It's a reference to struts in the architectural sense, a reminder of 
        the nearly invisible pieces that hold up buildings, houses, and bridges.
      </answer>
    </faq>
    
    <faq id="license">
      <question>How is Struts licensed?</question>
      <answer>
        Struts is copyrighted software available under a 
        &quot;free-to-use-license&quot; by The Apache Software Foundation. 
        The license appears at the head of every source code file. A reference
        copy of the license is available 
        <a href="http://www.apache.org/LICENSE-1.1">here</a>.
      </answer>
    </faq>

    <faq id="usage">
      <question>Can Struts be used in a commercial product?</question>
      <answer>
        <p>Yes. The only requirements you must meet are those listed in the 
        Apache Software Foundation license, which is included at the top of 
        each source file and in the file LICENSE in the top-level directory 
        of the distribution.</p>
        <p>In addition, <a id="helping.html#bugs">contributions of patches, 
        improved code, new features,</a> or even just requests for features 
        are also welcome.</p>
      </answer>
    </faq>
    
    <faq id="credits">
      <question>Do I have to credit Struts on my own website?</question>
      <answer>
        You need to credit Struts if you <strong>redistribute your own framework</strong>
        based on Struts	for other people to use. (See the 
        <a id="http://www.apache.org/LICENSE">Apache License</a> for details.)
        But you do <strong>not</strong> need to credit Struts just because your
        web application utilizes the framework.	It's the same situation as using 
        the Apache HTTPD server or Tomcat. Not required if its just running 
        your web site. Required if you've used the source code to create your 
        own server that you are redistributing to other people.      
      </answer>
    </faq>
    
    <faq id="where">
      <question>Where can I get a copy of Struts?</question>
      <answer>
        The best place to download Struts is at 
        <a id="http://jakarta.apache.org/struts/">jakarta.apache.org/struts</a>. 
        The nightly builds are very stable, and recommended as the best place 
        to start today.
      </answer>
    </faq>
    
    <faq id="install">
      <question>How do I install Struts?</question>
      <answer>
        <p>To develop applications with Struts, you can usually just add the
        Struts JAR file	to your Java development environment. You can then 
        start using the Struts classes as part of your own application. 
        A blank Struts application (in the <code>webapps</code> directory, 
        open <code>struts-blank.war</code>)	is provided, which you can just 
        copy to get a quick-start on your own brainchild.</p>
        <p>Since the full source code for Struts is available, we also provide 
        <a id="../userGuide/installation.html">complete instructions</a> for
        compiling your own Struts JAR from scratch. (This is actually easier 
        than it looks!)</p>
        <p>Your Struts application can usually be deployed using a standard WAR 
        file. In most cases, you simply deposit the WAR file on your application 
        server, and it is installed	automatically. If not, step-by-step 
        installation instructions for 
        <a id="../userGuide/installation.html#Containers">various servlet 
        containers</a> are available.</p>
      </answer>
    </faq>
    
  </part>

  <!--
    <faq id="">
      <question></question>
      <answer>
      </answer>
    </faq>
  -->
</faqs>
