build-legacy/core/xdocs/faqs/apps.xml (136 lines of code) (raw):

<?xml version="1.0"?> <document url="./apps.xml"> <properties> <title>Building Applications</title> </properties> <body> <section name="How to Build Applications" href="building_apps"/> <section href="intro" name="About This Document"> <p> This document outlines one possible sequence of development steps that can be followed to create a Struts application. It is not intended as a complete description of each referenced development activity. More detailed documentation is available elsewhere and is referenced by "(more...)" links where possible. </p> </section> <section href="caveats" name="Caveats"> <ol> <li>Requirements development and design are outside of the scope of this document.</li> <li>For help installing Struts, see the <a href="../userGuide/installation.html">Getting Started</a> chapter.</li> <li>There are many other ways to approach Struts development and there are many other features available besides the ones discussed below. This document outlines only one way to get started.</li> <li>This document focuses on form/data centric applications, but may also work with other types of applications.</li> <li>This material was written for Struts 1.1 (beta 2).</li> </ol> </section> <section href="overview" name="Overview"> <ol> <li>Implement data entry forms as JSP files.</li> <li>Implement one or more <code>ActionForm</code> descendents to buffer data between JSPs and Actions.</li> <li>Create an XML document that defines the validation rules for your application.</li> <li>Implement one or more <code>Action</code> descendents to respond form submissions.</li> <li>Create <code>struts-config.xml</code> to associate forms with actions.</li> <li>Create or update <code>web.xml</code> to reference <code>ActionServlet</code>, taglibs used by Struts.</li> <li>Parallel Tasks <ol> <li>Building</li> <li>Unit Testing</li> <li>Deployment</li> </ol> </li> </ol> </section> <section href="details" name="Details"> <ol> <li>Implement data entry forms as JSP files. <ol> <li>Use elements from the <code>html</code> taglib to define the form elements. <a href="../userGuide/struts-html.html"> (more...)</a></li> <li>Use <code>message</code> and other elements from the <code>bean</code> taglib to define the labels and other static text of the form. <a href="../userGuide/struts-bean.html">(more...)</a> <ol> <li>Create and maintain a properties file of the text elements to be displayed. <a href="../userGuide/preface.html#resources">(more...) </a></li> </ol> </li> <li>Use <code>property</code> attributes to link form fields to <code>ActionForm</code> instance variables.</li> </ol> </li> <li>Implement one or more <code>ActionForm</code> descendents to buffer data between JSPs and Actions. <ol> <li>Create get/set pairs that correspond to the property names in your related JSP form. Example: <pre>&lt;html:text property="city" /&gt;</pre> needs: <pre>getCity() and setCity(String c)</pre> </li> <li>When needed, create a <code>reset</code> method that sets the fields of the <code>ActionForm</code> to their default values. Most ActionForms do not need to do this.</li> </ol> </li> <li>Create an XML document that defines the validation rules for your application.</li> <li>Implement one or more <code>Action</code> descendents to respond to form submissions. <ol> <li>Descend from DispatchAction or LookupDispatchAction if you want one class to handle more than one kind of event (example: one Action to handle 'insert', 'update' and 'delete' events, using a different "surrogate" execute method for each). <a href="http://husted.com/struts/tips/002.html">(more...)</a></li> <li>Use the <code>execute</code> method (or its surrogates) of your Action class to interface with objects in your application responsible for database interaction, such as EJBs, etc. <!-- [:TODO: find good doc to link to] --> </li> <li>Use the return value of the <code>execute</code> method (or its surrogates) direct the user interface to the appropriate next page. <!-- [:TODO: find good doc to link to] --> </li> </ol> </li> <li>Create <code>struts-config.xml</code> to associate forms with actions. The file minimally needs:</li> <li>Create or update <code>web.xml</code> to reference <code>ActionServlet</code>, taglibs used by Struts. <a href="../userGuide/configuration.html#dd_config"> (more...)</a></li> <li>Parallel Tasks <ol> <li>Building <ol> <li>Use Ant. It can compile, create WAR file, perform XSLT transformations, run unit tests, interact with version control systems, clean up, etc. <a href="http://jakarta.apache.org/ant"> (more...)</a></li> <li>Create and use build script incrementally, as you create files that need to be copied, compiled, etc. </li> </ol> </li> <li>Unit Testing <ol> <li>Unit test normal java beans with JUnit. <a href="http://www.junit.org"> (more...)</a></li> <li>Unit test JSP, taglibs and conventional servlet components with Cactus. <a href="http://jakarta.apache.org/cactus"> (more...)</a></li> <li>Unit test Action servlets with StrutsTestCase. <a href="http://strutstestcase.sourceforge.net"> (more...)</a></li> <li>Add all unit tests to the build script as a separate target. This target should use the <code>junit</code> tag to launch each TestCase descendent. <a href="http://jakarta.apache.org/ant/manual/OptionalTasks/junit.html"> (more...)</a></li> </ol> </li> <li>Deployment <ol> <li>Build script should create a war file containing the files developed above, along with files that make up the Struts framework. <!-- [:TODO: describe this further, look for doc to link to] --> </li> </ol> </li> </ol> </li> </ol></section> </body> </document>