husted      2002/10/13 08:55:12

  Modified:    doc/userGuide installation.xml building_view.xml
                        building_controller.xml
  Log:
  Notes regarding configuring taglibs under Servlet 2.3 submitted by  David Graham.
  
  Revision  Changes    Path
  1.13      +8 -4      jakarta-struts/doc/userGuide/installation.xml
  
  Index: installation.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/doc/userGuide/installation.xml,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- installation.xml  12 Oct 2002 16:51:40 -0000      1.12
  +++ installation.xml  13 Oct 2002 15:55:12 -0000      1.13
  @@ -172,8 +172,10 @@
           your application classes are stored in the shared repository.</li>
       <li><strong>lib/struts-*.tld</strong> - These are the "tag library
           descriptor" files that describe the custom tags in the various Struts
  -        tag libraries.  They should be copied into the <code>WEB-INF</code>
  -        directory of your web application.</li>
  +        tag libraries. They should be copied into the <code>WEB-INF</code>
  +        directory of your web application. (Servlet 2.3 can omit this step 
  +        if the <a href="building_controller.html#dd_config_taglib_23">standard 
uri</a> 
  +        is referenced.)</li>
       <li><strong>webapps/struts-blank.war</strong> - This is a simple "web
           application archive" file containing a basic starting point for
           building your own Struts-based applications.</li>
  @@ -223,11 +225,13 @@
       <li>Modify the <code>WEB-INF/web.xml</code> file for your web application
           to include a <code>&lt;servlet&gt;</code> element to define the
           controller servlet, and a <code>&lt;servlet-mapping&gt;</code> element
  -        to establish which request URIs are mapped to this servlet.  Use the
  +        to establish which request URIs are mapped to this servlet. Use the
           <code>WEB-INF/web.xml</code> file from the Struts example application
           for a detailed example of the required syntax.</li>
       <li>Modify the <code>WEB-INF/web.xml</code> file of your web application
  -        to include the following tag library declarations:</li>
  +        to include the following tag library declarations (Servlet 2.3 can omit 
  +        this step if the <a 
href="building_controller.html#dd_config_taglib_23">standard uri</a> 
  +        is referenced):</li>
       </ul>
   
   <pre>&lt;taglib&gt;
  
  
  
  1.15      +124 -125  jakarta-struts/doc/userGuide/building_view.xml
  
  Index: building_view.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/doc/userGuide/building_view.xml,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- building_view.xml 29 Jun 2002 14:12:01 -0000      1.14
  +++ building_view.xml 13 Oct 2002 15:55:12 -0000      1.15
  @@ -7,28 +7,29 @@
       <author>Ted Husted</author>
       <author>Martin Cooper</author>
       <author>Ed Burns</author>
  -    <author>James DeVries</author> 
  +    <author>James DeVries</author>
  +    <author>David Graham</author>
       <title>The Struts User's Guide - Building View Components</title>
     </properties>
  -  
  -  <body>  
  +
  +  <body>
     <chapter name="3. Building View Components" href="building_view">
  -  
  +
         <section name="3.1 Overview" href="overview">
  -        
  +
           <p>
           This chapter focuses on the task of building the <i>View</i> components
           for use with the Struts framework. Many applications rely on JavaServer 
Pages
  -        (JSP) technology to create the presentation layer. The Struts distribution 
  +        (JSP) technology to create the presentation layer. The Struts distribution
           includes a comprehensive JSP tag library that provides support for building
           internationalized applications, as well as for interacting with input forms.
           Several other topics related to the View components are briefly discussed.
         </p>
  -      
  +
       </section>
  -    
  +
       <section name="3.2 Internationalized Messages" href="i18n">
  -      
  +
         <p>
           A few years ago, application developers could count on having to support
           only residents of their own country, who are used to only one (or sometimes
  @@ -41,27 +42,27 @@
           <i>internationalization</i> (often called "i18n" because 18 is the number of
           letters in between the "i" and the "n") and <i>localization</i>.
         </p>
  -        
  +
         <p>
  -        Struts builds upon the standard classes available on the Java platform to 
  +        Struts builds upon the standard classes available on the Java platform to
           build internationalized and localized applications. The key concepts
           to become familiar with are:
         </p>
  -      
  +
         <ul>
  -        <li><a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/Locale.html";><b>Locale</b></a> 
- 
  +        <li><a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/Locale.html";><b>Locale</b></a> 
-
               The fundamental Java class that supports
               internationalization is <code>Locale</code>.  Each
               <code>Locale</code> represents a particular choice of country and
               language (plus an optional language variant), and also a set of
               formatting assumptions for things like numbers and dates.</li>
  -        <li><a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/ResourceBundle.html";><b>ResourceBundle</b></a>
 - 
  +        <li><a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/ResourceBundle.html";><b>ResourceBundle</b></a>
 -
               The <code>java.util.ResourceBundle</code> class
               provides the fundamental tools for supporting messages in multiple
               languages.  See the Javadocs for the <code>ResourceBundle</code> class,
               and the information on Internationalization in the documentation bundle
               for your JDK release, for more information.</li>
  -        <li><a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/PropertyResourceBundle.html";><b>PropertyResourceBundle</b></a>
 - 
  +        <li><a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/PropertyResourceBundle.html";><b>PropertyResourceBundle</b></a>
 -
               One of the standard implementations of
               <code>ResourceBundle</code> allows you to define resources using the
               same "name=value" syntax used to initialize properties files.  This is
  @@ -76,19 +77,19 @@
               The placeholder string <code>{0}</code> in the message is replaced by
               the first runtime argument, <code>{1}</code> is replaced by the second
               argument, and so on.</li>
  -        <li><a 
href="api/org/apache/struts/util/MessageResources.html"><b>MessageResources</b></a> - 
  +        <li><a 
href="api/org/apache/struts/util/MessageResources.html"><b>MessageResources</b></a> -
               The Struts class <code>org.apache.struts.util.MessageResources</code> 
lets you treat
               a set of resource bundles like a database, and allows you to request
               a particular message string for a particular Locale (normally one
               associated with the current user) instead of for the default Locale
               the server itself is running in.</li>
         </ul>
  -        
  +
         <p>
           Please note that the i18n support in a framework like Struts is limited to 
the
           <b>presentation</b> of internationalized text and images to the user.
  -        Support for Locale specific <b>input methods</b> (used with languages 
  -        such as Japanese, Chinese, and Korean) is left up to the client device, 
which 
  +        Support for Locale specific <b>input methods</b> (used with languages
  +        such as Japanese, Chinese, and Korean) is left up to the client device, 
which
           is usually a web browser.
         </p>
   
  @@ -98,7 +99,7 @@
           platform to create a properties file containing the messages for each
           language.  An example will illustrate this further:
         </p>
  -        
  +
         <p>
           Assume that your source code is created in package
           <code>com.mycompany.mypackage</code>, so it is stored in a directory
  @@ -107,27 +108,27 @@
           <code>com.mycompany.mypackage.MyApplication</code>, you would create the
           following files in the <code>com/mycompany/mypackage</code> directory:
         </p>
  -    
  +
         <ul>
           <li><b>MyApplication.properties</b> - Contains the messages in the default
               language for your server.  If your default language is English, you
               might have an entry like this:
               <code>prompt.hello=Hello</code></li>
           <li><b>MyApplication_xx.properties</b> - Contains the same messages in the
  -            language whose ISO language code is "xx" (See the 
  -            <a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/ResourceBundle.html";>ResourceBundle
 Javadoc</a> 
  +            language whose ISO language code is "xx" (See the
  +            <a 
href="http://java.sun.com/j2se/1.4.1/docs/api/java/util/ResourceBundle.html";>ResourceBundle
 Javadoc</a>
               page for a link to the current list).  For a French version
               of the message shown above, you would have this entry:
               <code>prompt.hello=Bonjour</code>
               You can have resource bundle files for as many languages as you 
need.</li>
         </ul>
  -        
  +
         <p>
           When you configure the controller servlet in the web application
           deployment descriptor, one of the things you will need to define in
           an initialization parameter is the base name of the resource bundle
           for the application.  In the case described above, it would be
  -        <code>com.mycompany.mypackage.MyApplication</code>. 
  +        <code>com.mycompany.mypackage.MyApplication</code>.
         </p>
   <pre>
   &lt;servlet>
  @@ -140,17 +141,17 @@
     &lt;.../>
   &lt;/servlet>
   </pre>
  -     
  +
         <p>
  -        The important thing is for the resource bundle to be found on the 
  -        class path for your application. Another approach is to store 
  -        the <code>MyResources.properties</code> file in your application's 
  -        <code>classes</code> folder. You can then simply specify "myResources" as 
the 
  -        application value. Just be careful it is not deleted if your 
  +        The important thing is for the resource bundle to be found on the
  +        class path for your application. Another approach is to store
  +        the <code>MyResources.properties</code> file in your application's
  +        <code>classes</code> folder. You can then simply specify "myResources" as 
the
  +        application value. Just be careful it is not deleted if your
           build script deletes classes as part of a "clean" target.
         </p>
         <p>
  -        If it does, here is an Ant task to run when compiling your application 
  +        If it does, here is an Ant task to run when compiling your application
           that copies the contents of a <code>src/conf</code>
           directory to the <code>classes</code> directory:
         </p>
  @@ -162,14 +163,14 @@
          </pre>
       </section>
   
  -    <section name="3.3 Forms and FormBean Interactions" href="form_beans">    
  +    <section name="3.3 Forms and FormBean Interactions" href="form_beans">
   
  -      <blockquote> 
  -        <b>Note:</b> While the examples given here use JSP and custom tags, 
  -        the ActionForm beans and the other Struts controller components are 
  -        View neutral. Struts can be used with Velocity Templates, XSL, and 
  -        any other presentation technology that can be rendered via a Java 
  -        servlet. See the 
  +      <blockquote>
  +        <b>Note:</b> While the examples given here use JSP and custom tags,
  +        the ActionForm beans and the other Struts controller components are
  +        View neutral. Struts can be used with Velocity Templates, XSL, and
  +        any other presentation technology that can be rendered via a Java
  +        servlet. See the
           <a href="../resources/index.html">
           Resources page</a> for links to additional information.
         </blockquote>
  @@ -183,18 +184,18 @@
           needs to be changed -- without having to re-enter any of the rest of the
           information on the current page or form.
         </p>
  -        
  +
         <p>
           Fulfilling this expectation is tedious and cumbersome when coding with
           standard HTML and JSP pages.  For example, an input element for a
           <code>username</code> field might look like this (in JSP):
          </p>
  -      
  +
   <pre>
   &lt;input type="text" name="username"
         value="&lt;%= loginBean.getUsername() %&gt;"/&gt;
   </pre>
  -      
  +
         <p>
           which is difficult to type correctly, confuses HTML developers who are
           not knowledgeable about programming concepts, and can cause problems with
  @@ -207,29 +208,29 @@
   &lt;html:text property="username"/&gt;
   </pre>
   
  -      <p> 
  +      <p>
           with no need to explicitly refer to the JavaBean from which the initial
  -        value is retrieved.  That is handled automatically by the JSP tag, using 
  +        value is retrieved.  That is handled automatically by the JSP tag, using
           facilities provided by the framework.
         </p>
         <p>
  -        HTML forms are sometimes used to upload other files. Most browsers 
  -        support this through a &lt;input type="file"&gt; element, that generates 
  +        HTML forms are sometimes used to upload other files. Most browsers
  +        support this through a &lt;input type="file"&gt; element, that generates
           a file browse button, but it's up to the developer to handle the incoming
  -        files. Struts handles these "multipart" forms in a way identical to 
  -        building normal forms. In the next section, we will cover using Struts to 
  -        create a simple login form, and also a simple mulitpart form. 
  -      </p>   
  +        files. Struts handles these "multipart" forms in a way identical to
  +        building normal forms. In the next section, we will cover using Struts to
  +        create a simple login form, and also a simple mulitpart form.
  +      </p>
         </section>
   
         <section name="3.3.1 Building Forms With Struts" href="forms">
  -        
  +
           <p>
             A complete example of a login form will illustrate how Struts
             makes dealing with forms much less painful than using straight HTML
             and standard JSP facilities.  Consider the following page (based on the
             example application included with Struts) named <code>logon.jsp</code>:
  -        </p>       
  +        </p>
   <hr/>
   <pre>
   &lt;%@ page language="java" %&gt;
  @@ -287,7 +288,7 @@
             The following items illustrate the key features of form handling in 
Struts,
             based on this example:
           </p>
  -        
  +
           <ul>
             <li>The <code>taglib</code> directive tells the JSP page compiler where to
                 find the <i>tag library descriptor</i> for the Struts tag library.  In
  @@ -318,24 +319,24 @@
                 below.</li>
             <li>The <b>form</b> tag renders an HTML
                 <code>&lt;form&gt;</code> element, based on the specified attributes.
  -              It also associates all of the fields within this form with a 
  +              It also associates all of the fields within this form with a
                 <code>ActionForm</code> bean 
[<code>org.apache.struts.action.ActionForm</code>].
  -              The tag looks up the <code>/logon</code> action mapping in the Struts 
  -              configuration. 
  -              The <code>logon</code> mapping tells the tag that the form bean is 
stored 
  +              The tag looks up the <code>/logon</code> action mapping in the Struts
  +              configuration.
  +              The <code>logon</code> mapping tells the tag that the form bean is 
stored
                 in the session context under the key <code>logonForm</code>.
                 The Struts developer provides the Java implementation of the 
ActionForm
                 bean, subclassing the Struts class <code>ActionForm</code>
  -              (see <a href="building_controller.html#action_form_classes">Building 
  +              (see <a href="building_controller.html#action_form_classes">Building
                 Controller</a> components).
                 This bean is used to provide initial values for all of the input
                 fields that have names matching the property names of the bean.
                 If an appropriate bean is not found, a new one will be created
  -              automatically, using the Java class name specified through the action 
  +              automatically, using the Java class name specified through the action
                 mapping.</li>
  -          <li>The form bean can also be specified in the tag by providing 
  -              <code>name</code> and <code>type</code> attributes. But most often, 
  -              everything is specified in the 
  +          <li>The form bean can also be specified in the tag by providing
  +              <code>name</code> and <code>type</code> attributes. But most often,
  +              everything is specified in the
                 <a href="building_controller.html#config">Struts  Configuration 
File</a>.
                 </li>
             <li>The <b>text</b> tag renders an HTML
  @@ -353,7 +354,7 @@
                 are created using message tags,
                 as with the prompts, so that these values are internationalized.</li>
           </ul>
  -        
  +
           <p>
             Handling multipart forms is also easy.  Obviously when you create a 
multipart
             form you're creating a form that has at least one input of type "file".  
The first step to
  @@ -361,7 +362,7 @@
             page:
           </p>
   
  -<hr/>          
  +<hr/>
   <pre>
   &lt;%@page language="java">
   &lt;%@taglib uri="/WEB-INF/struts-html.tld"
  @@ -403,27 +404,27 @@
     }
   }
   </pre>
  -<hr/>        
  +<hr/>
           <p>
  -          Look at the Javadocs for <code><a 
href="../api/org/apache/struts/upload/FormFile.html">FormFile</a></code> 
  -          to see the methods it exposes to manipulate files in file uploading.  
  -          Also look at the Javadocs for 
  -          <a 
href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionServlet.html";>ActionServlet</a>
 and 
  +          Look at the Javadocs for <code><a 
href="../api/org/apache/struts/upload/FormFile.html">FormFile</a></code>
  +          to see the methods it exposes to manipulate files in file uploading.
  +          Also look at the Javadocs for
  +          <a 
href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionServlet.html";>ActionServlet</a>
 and
             <a 
href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionMapping.html";>ActionMapping</a>
 for the various parameters
             you can specify to change how files are uploaded.  Basically in your
             <code>execute</code> method in your action class you would call 
<code>((UploadForm) form).getMyFile()</code>
             to retrieve the FormFile and do what you want with it.
  -        </p>        
  -              
  +        </p>
  +
         </section>
  -      
  +
         <section name="3.3.2 Input Field Types Supported" href="form_input">
  -        
  +
           <p>
             Struts defines HTML tags for all of the following types of input fields,
             with hyperlinks to the corresponding reference information.
           </p>
  -        
  +
           <ul>
               <li><a href="../struts-html.html#checkbox">checkboxes</a></li>
               <li><a href="../struts-html.html#hidden">hidden</a> fields</li>
  @@ -437,58 +438,58 @@
               <li><a href="../struts-html.html#text">text</a> input fields</li>
               <li><a href="../struts-html.html#textarea">textareas</a></li>
           </ul>
  -        
  +
           <p>
             In every
             case, a field tag must be nested within a <code>form</code> tag, so that
             the field knows what bean to use for initializing displayed values.
           </p>
         </section>
  -      
  +
         <section name="3.3.3 Other Useful Presentation Tags" href="presentation_tags">
  -        
  +
           <p>
             There are several tags useful for creating presentations, consult the 
documentation
  -          on each specific tag library, along with the Tag Developers Guides, for 
more 
  +          on each specific tag library, along with the Tag Developers Guides, for 
more
             information:
           </p>
  -        
  +
           <ul>
  -       
  +
             <li>[logic] <a href="../struts-logic.html#iterate">iterate</a> repeats 
its tag body once
                 for each element of a specified collection (which can be an 
Enumeration,
                 a Hashtable, a Vector, or an array of objects).</li>
             <li>[logic] <a href="../struts-logic.html#present">present</a> depending 
on which attribute
  -              is specified, this tag checks the current request, and evaluates the 
nested 
  -              body content of this tag only if the specified value is present. Only 
one of 
  +              is specified, this tag checks the current request, and evaluates the 
nested
  +              body content of this tag only if the specified value is present. Only 
one of
                 the attributes may be used in one occurrence of this tag, unless you 
use the
  -              property attribute, in which case the name attribute is also 
required. The 
  -              attributes include cookie, header, name, parameter, property, role, 
scope, 
  +              property attribute, in which case the name attribute is also 
required. The
  +              attributes include cookie, header, name, parameter, property, role, 
scope,
                 and user.
             </li>
  -          <li>[logic] <a href="../struts-logic.html#notPresent">notPresent</a> the 
companion tag to 
  +          <li>[logic] <a href="../struts-logic.html#notPresent">notPresent</a> the 
companion tag to
                 present, notPresent provides the same functionality when the 
specified attribute
  -              is not present.</li>        
  -          <li>[html] <a href="../struts-html.html#link">link</a> generates a HTML 
&lt;a&gt; element 
  +              is not present.</li>
  +          <li>[html] <a href="../struts-html.html#link">link</a> generates a HTML 
&lt;a&gt; element
                 as an anchor definition or a hyperlink to the specified URL, and 
automatically
                 applies URL encoding to maintain session state in the absence of
                 cookie support.</li>
  -          <li>[html] <a href="../struts-html.html#img">img</a> generates a HTML 
&lt;img&gt; element 
  -              with the ability to dynamically modify the URLs specified by the 
"src" and 
  +          <li>[html] <a href="../struts-html.html#img">img</a> generates a HTML 
&lt;img&gt; element
  +              with the ability to dynamically modify the URLs specified by the 
"src" and
                 "lowsrc" attributes in the same manner that &lt;html:link> can.
  -         </li>  
  -          <li>[bean] <a href="../struts-bean.html#parameter">parameter</a> 
retrieves the value of the 
  +         </li>
  +          <li>[bean] <a href="../struts-bean.html#parameter">parameter</a> 
retrieves the value of the
                 specified request parameter, and defines the result as a page scope 
attribute of
                 type String or String[].</li>
           </ul>
         </section>
  -      
  -      <section name="3.3.4 Automatic Form Validation" href="form_validation">    
  -     
  +
  +      <section name="3.3.4 Automatic Form Validation" href="form_validation">
  +
           <p>
             In addition to the form and bean interactions described above, Struts
             offers an additional facility to validate the input fields it has 
received.
  -          To utilize this feature, override the following method in your ActionForm 
  +          To utilize this feature, override the following method in your ActionForm
             class:
           </p>
   
  @@ -496,18 +497,18 @@
     validate(ActionMapping mapping,
       HttpServletRequest request);
   </pre>
  -        
  +
           <p>
             The <code>validate</code> method is called by the controller servlet 
after the bean
             properties have been populated, but before the corresponding action 
class's
             <code>perform</code> method is invoked. The <code>validate</code> method
             has the following options:
           </p>
  -        
  +
           <ul>
             <li>Perform the appropriate validations and find no problems -- Return 
either
  -              <code>null</code> or a zero-length ActionErrors instance, and the 
controller 
  -              servlet will proceed to call the <code>perform</code> method of the 
  +              <code>null</code> or a zero-length ActionErrors instance, and the 
controller
  +              servlet will proceed to call the <code>perform</code> method of the
                 appropriate <code>Action</code> class.</li>
             <li>Perform the appropriate validations and find problems -- Return an 
ActionErrors
                 instance containing <code>ActionError</code>'s, which are classes 
that contain
  @@ -518,30 +519,28 @@
                 control back to the input form (identified by the <code>input</code>
                 property for this <code>ActionMapping</code>).</li>
           </ul>
  -          
  +
           <p>
             As mentioned earlier, this feature is entirely optional.  The default 
implementation
             of the <code>validate</code> method returns <code>null</code>, and the 
controller servlet
             will assume that any required validation is done by the action class.
           </p>
           <p>
  -          One common approach is to perform simple, prima facia validations using 
the 
  -          ActionForm <code>validate</code> method, and then handle the "business 
logic" validation 
  -          from the Action. 
  +          One common approach is to perform simple, prima facia validations using 
the
  +          ActionForm <code>validate</code> method, and then handle the "business 
logic" validation
  +          from the Action.
           </p>
           <p>
  -          An optional package for performing ActionForm validations is available in 
the 
  -          Nightly Build and from <a href="http://home.earthlink.net/~dwinterfeldt/";>
  -          David Winterfeldt's Web site</a>.
  +         The Struts Validator, covered in the next section, may be used to easily 
validate ActionForms.
           </p>
         </section>
  -    
  -    <section name="3.3.5 The Struts Validator" href="validator">   
  +
  +    <section name="3.3.5 The Struts Validator" href="validator">
       <p>[:TODO:]</p>
       </section>
   
       <section name="3.4 Other Presentation Techniques" href="other_presentations">
  -    
  +
         <p>
           Although the look and feel of your application can be completely constructed
           based on the standard capabilities of JSP and the Struts custom tag library,
  @@ -550,9 +549,9 @@
           are discussed in the following sections.
         </p>
       </section>
  -      
  +
         <section name="3.4.1 Application-Specific Custom Tags" href="custom_tags">
  -      
  +
           <p>
             Beyond using the custom tags provided by the Struts library, it is easy
             to create tags that are specific to the application you are building, to
  @@ -560,7 +559,7 @@
             Struts illustrates this principle by creating the following tags unique to
             the implementation of this application:
           </p>
  -        
  +
           <ul>
             <li><b>checkLogon</b> - Checks for the existence of a particular session
                 object, and forwards control to the logon page if it is missing.  
This is
  @@ -575,28 +574,28 @@
                 for a User, which passes the required primary key values as
                 request attributes.</li>
           </ul>
  -          
  +
           <p>
             The source code for these tags is in the <code>src/example</code> 
directory,
             in package <code>org.apache.struts.example</code>, along with the other 
Java
             classes that are used in this application.
           </p>
         </section>
  -      
  +
         <section name="3.4.2 Page Composition With Includes" href="includes">
  -        
  +
           <p>
             Creating the entire presentation of a page in one JSP file (with custom
             tags and beans to access the required dynamic data) is a very common 
design
             approach, and was employed in the example application included with 
Struts.
             However, many applications require the display of multiple logically 
distinct
             portions of your application together on a single page.</p>
  -          
  +
           <p>
             For example, a portal application might have some or all of the following
             functional capabilities available on the portal's "home" page:
           </p>
  -        
  +
           <ul>
             <li>Access to a search engine for this portal.</li>
             <li>One or more "news feed" displays, with the topics of interest 
customized
  @@ -605,7 +604,7 @@
             <li>A "mail waiting" indicator if your portal provides free email
                 accounts.</li>
           </ul>
  -          
  +
           <p>
             The development of the various segments of this site is easier if you
             can divide up the work, and assign different developers to the different
  @@ -615,7 +614,7 @@
             types of <i>include</i> available, depending on when you want the 
combination
             of output to occur:
           </p>
  -          
  +
           <ul>
             <li>An <code>&lt;%@ include file="xxxxx" %&gt;</code> directive can 
include a file that contains
             Java code or JSP tags. The code in the included file can even reference
  @@ -644,13 +643,13 @@
         </section>
   
         <section name="3.4.4 Image Rendering Components" href="image_rendering">
  -      
  +
           <p>
             Some applications require dynamically generated images, like the price
             charts on a stock reporting site.  Two different approaches are commonly 
used
             to meet these requirements:
           </p>
  -        
  +
           <ul>
             <li>Render a hyperlink with a URL that executes a servlet request.  The
                 servlet will use a graphics library to render the graphical image,
  @@ -668,8 +667,8 @@
         <section name="3.4.5 Rendering Text" href="text_rendering">
   
            <p>
  -           Some applications require dynamically generated text or markup, 
  -           such as XML. If a complete page is being rendered, and can be output 
  +           Some applications require dynamically generated text or markup,
  +           such as XML. If a complete page is being rendered, and can be output
              using a PrintWriter, this is very easy to do from an Action:
            </p>
            <pre>
  @@ -686,8 +685,8 @@
   
     </chapter>
     </body>
  -</document> 
  -  
  +</document>
  +
   
   
   
  
  
  
  1.33      +37 -4     jakarta-struts/doc/userGuide/building_controller.xml
  
  Index: building_controller.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/doc/userGuide/building_controller.xml,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- building_controller.xml   12 Oct 2002 05:15:58 -0000      1.32
  +++ building_controller.xml   13 Oct 2002 15:55:12 -0000      1.33
  @@ -9,7 +9,7 @@
       <author>Ed Burns</author>
       <author>Donald Ball</author>
       <author>Eddie Bush</author>
  -    <author>Yann Cebron </author>
  +    <author>Yann Cebron</author>
       <author>David Graham</author>
       <title>The Struts User's Guide - Building Controller Components</title>
     </properties>
  @@ -990,10 +990,9 @@
         </section>
   
         <section name="4.7.3 Configure the Struts Tag Library" 
href="dd_config_taglib">
  -
           <p>
  -          Next, you must add an entry defining the Struts tag library.  There are 
currently four
  -          taglibs that Struts is packaged with.
  +          Next, you must add an entry defining the Struts tag library. There are 
six taglibs
  +          included with the Struts distribution.
           </p>
           <p>
             The struts-bean taglib contains tags useful in accessing
  @@ -1014,6 +1013,15 @@
           <p>
             The struts-template taglib contains tags that define a template mechanism.
           </p>
  +        <p>
  +          The struts-tiles taglib contains tags used for combining various view 
components,
  +          called "tiles", into a final composite view.  This is similar to 
struts-template in that
  +          it's used for view composition, but tiles is a more full featured set of 
tags.
  +        </p>
  +        <p>
  +        The struts-nested taglib is an extension of other struts taglibs that 
allows the use
  +        of nested beans.
  +        </p>
   
           <p>
             Below is how you would define all taglibs for use within your application.
  @@ -1062,6 +1070,26 @@
           </p>
         </section>
   
  +      <section name="4.7.3.1 Configure the Struts Tag Library (Servlet 2.3)" 
href="dd_config_taglib_23">
  +      <p>
  +        <b>Servlet 2.3 Users only:</b> The Servlet 2.3 specification simplifies the
  +        deployment and configuration of tag libraries.  The instructions above will 
work
  +        on older containers as well as 2.3 containers (Struts only requires a 
servlet 2.2 container);
  +        however, if you're using a 2.3 container such as Tomcat 4.x, you can take 
advantage of
  +        a simplified deployment.
  +       </p>
  +      <p>
  +        All that's required to install the struts tag libraries is to copy 
struts.jar into
  +        your /WEB-INF/lib directory and reference the tags in your code like this:
  +        <br/>
  +        <code>&lt;%@ taglib uri="http://jakarta.apache.org/struts/tags-html-1.0"; 
prefix="html" %&gt;</code>
  +        <br/>
  +        Note that you <b>must use the full uri</b> defined in the various struts 
tlds so that the container
  +        knows where to find the tag's class files. You don't have to alter your 
web.xml file or
  +        copy tlds into any application directories.
  +       </p>
  +     </section>
  +
         <section name="4.7.4 Configuring your application for modules" 
href="dd_config_modules">
           <p>
           Very little is required in order to start taking advantage of the Struts
  @@ -1221,6 +1249,11 @@
            your <code>WEB-INF</code> directory, and copy <code>struts.jar</code>
            (and all of the <code>commons-*.jar</code> files) into your
            <code>WEB-INF/lib</code> directory.
  +        </p>
  +
  +        <p>
  +         <b>Servlet 2.3 Users:</b> See <a href="#dd_config_taglib_23">section 
4.7.3.1</a>
  +         for how to avoid copying the tlds into your application.
           </p>
   
         </section>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to