<?xml version="1.0"?>
<document url="struts-nested.html" authors="false">

<properties>
  <author>Arron Bates</author>
  <title>The Struts Framework Project - Nested Tags</title>
</properties>

<body>

<taglib>
  <tlibversion>1.2</tlibversion>
  <jspversion>1.1</jspversion>
  <shortname>nested</shortname>
  <display-name>Struts Nested Tags</display-name>
  <uri>http://struts.apache.org/tags-nested</uri>
  <info>
    <p>[Since Struts 1.1]</p>
    <p>This tag library brings a nested context to the functionality of the
    Struts custom tag library.</p>

    <p>It's written in a layer that extends the current Struts tags, building on
    their logic and functionality. The layer enables the tags to be aware of the
    tags which surround them so they can correctly provide the nesting property
    reference to the Struts system.
    </p>

    <p><strong>It's all about nesting beans...</strong><br />
    A bean holds a reference to another bean internally, and all access to that
    bean is handled through the current bean. This act of having one bean's
    access go through another bean is known as "nesting beans". The first bean
    is known as the parent bean. The bean which it references, is known as a
    child bean. The terms "parent" and "child" are commonly used to describe the
    model's hierarchy.
    </p>

    <p><strong>A simple example... </strong><br />
     Take an object which represents a monkey. The monkey's job is to pick
     bunches of bananas. On each bunch picked hangs many bananas. If this case
     was translated to bean objects, the monkey object would have a reference to
     the bunch objects he picked, and each bunch object would hold a reference
     to the bananas hanging in the bunch.
    </p>

    <p><strong>To describe this... </strong><br />
     The monkey object is the parent to the bunch object, and the bunch object
     is a child of the monkey object. The bunch object is parent to its child
     banana objects, and the child banana objects children of the bunch object.
     The monkey is higher in the hierarchy than the bananas, and the bananas
     lower in the hierarchy to the bunches.
     </p>

    <p>One special term to remember is for the most parent class, which is known
    as the "root" object which starts the hierarchy.</p>

    <p>Nested tags are all about efficiently managing this style of hierarchy
    structure within your JSP markup.</p>

    <p>
    <strong>Important Note:</strong> Nearly all these tags extend tags from
    other libraries to bring their functionality into the nested context.
    Nesting relies on the tags working against the one bean model, and managing
    the properties so that they become relative to the properties they are
    nested within. In doing so, the tags will set the "name" attribute internally
    (where applicable), and in many cases will rely on the "property" attribute
    being set so it can be updated internally to become nested. The original tags
    on occasion provide options that don't use the "name" and "property"
    attributes. These uses will then fall outside the nested context, and will
    most likely cause error. To take advantage of these options, markup using
    the original tag for these cases. For an example see the
    <a href="#options"><code>&lt;nested:options&gt;</code></a> tag.
    </p>
  </info>

  <tag>
    <name>nest</name>
    <summary>
      Defines a new level of nesting for child tags to reference to
    </summary>
    <tagclass>org.apache.struts.taglib.nested.NestedPropertyTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>
      This tag provides a simple method of defining a logical nesting level in
      the nested hierarchy. It run no explicit logic, is simply a place holder.
      It also means you can remove the need for explicit setting of level
      properties in child tags.
      </p>
      <p>
      Just as the iterate tag provide a parent to other tags, this does the same
      but there is no logic for iterating or otherwise.
      </p>
      <p>
      Example...</p>
      <pre>
&lt;nested:write property="myNestedLevel.propertyOne" /&gt;
&lt;nested:write property="myNestedLevel.propertyTwo" /&gt;
&lt;nested:write property="myNestedLevel.propertyThree" /&gt;
      </pre>
      <p>Can instead become...</p>
      <pre>
&lt;nested:nest property="myNestedLevel" &gt;
  &lt;nested:write property="propertyOne" /&gt;
  &lt;nested:write property="propertyTwo" /&gt;
  &lt;nested:write property="propertyThree" /&gt;
&lt;/nested:nest &gt;
      </pre>
    </info>
    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <info>
        This specifies the property by which this tag and all child tags
        will be relative to.
      </info>
    </attribute>
  </tag>

  <tag>
    <name>writeNesting</name>
    <summary>
      Writes or makes a scripting variable of the current nesting level.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.NestedWriteNestingTag</tagclass>
    <teiclass>org.apache.struts.taglib.nested.NestedWriteNestingTei</teiclass>
    <bodycontent>JSP</bodycontent>
    <info>
      This tag provides a way of accessing the nested property reference used by
      the nested tags. Can expose a scripting variable, or simply write out the
      value.
    </info>
    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <info>
        If not supplied, will simply write out as if "./" or "this/" was supplied.
      </info>
    </attribute>
    <attribute>
      <name>id</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <info>
        If <i>id</i> is supplied, then what would have been written out into the
        response stream, will instead be made available as a String object
        defined by the variable name provided.
      </info>
    </attribute>
    <attribute>
      <name>filter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <info>
        true/false value, describing to the tag if the result if to be URLEncoded.
        Helps JavaScript along if the result is required for URL hacking.
      </info>
    </attribute>
  </tag>
  <tag>
    <name>root</name>
    <summary>To start off a nested hierarchy without the need for a form</summary>
    <tagclass>org.apache.struts.taglib.nested.NestedRootTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>
        This tag is provided to allow the nested tags to find a common bean
        reference without the need for a form and its relative overhead. As
        long as the <code>name</code> attribute of this tag matches the name
        of a bean in scope of the JSP (ie: Struts tags can find it via usual
        means). For example you can load a bean for use with the
        <code>jsp:useBean</code> tag.
      </p>
      <p>
        The tag can also be used without specifying the <code>name</code>
        attribute, but this is only in the case that the current JSP is a
        dynamic include specified in another file. You will not be able to run
        the tag without a name unless this inclusion is in place. Otherwise
        the nested tags will not have the bean and property references that they
        need to provide their logic.
      </p>
      <p>
        <strong>Note</strong>: The access to a bean via the <code>name</code>
        attribute takes priority over looking for the reference from other
        parent tags. So if a name is specified, a bean will have to be there
        waiting for it. It was made this way so that you could use separate
        beans within a JSP that itself is an inclusion into another.
      </p>
    </info>
    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <info>
        The name of the bean by which all child nested tags will derive their
        bean reference from.
      </info>
    </attribute>
  </tag>


<!-- BEAN extended tags
********************************************************************************
********************************************************************************
-->
  <tag document-attributes="false">
    <name>define</name>
    <summary>Nested Extension -
      Define a scripting variable based on the value(s) of the specified
      bean property.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.bean.NestedDefineTag</tagclass>
    <teiclass>org.apache.struts.taglib.nested.bean.NestedDefineTei</teiclass>
    <bodycontent>empty</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-bean.html#define"><code>&lt;bean:define&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>id</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>toScope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>type</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">

    <name>message</name>
    <summary>Nested Extension -
    Render an internationalized message string to the response.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.bean.NestedMessageTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-bean.html#message"><code>&lt;bean:message&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>arg0</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>arg1</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>arg2</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>arg3</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>arg4</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>key</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>locale</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">

    <name>size</name>
    <summary>Nested Extension -
      Define a bean containing the number of elements in a Collection or Map.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.bean.NestedSizeTag</tagclass>
    <teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass>
    <bodycontent>empty</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-bean.html#size"><code>&lt;bean:size&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>collection</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>id</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">

    <name>write</name>
    <summary>Nested Extension -
    Render the value of the specified bean property to the current
    JspWriter.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.bean.NestedWriteTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-bean.html#write"><code>&lt;bean:write&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>filter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>format</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>formatKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ignore</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>locale</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>


<!-- HTML extended tags
********************************************************************************
********************************************************************************
-->
  <tag document-attributes="false">
    <name>checkbox</name>
    <summary>Nested Extension - Render A Checkbox Input Field</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedCheckboxTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#checkbox"><code>&lt;html:checkbox&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>

  <tag document-attributes="false">
     <name>errors</name>
     <summary>
        Nested Extension - Conditionally display a set of accumulated error messages.
     </summary>
     <tagclass>org.apache.struts.taglib.nested.html.NestedErrorsTag</tagclass>

     <bodycontent>empty</bodycontent>
     <info>
       <p>This tag is an extension of the
       <a href="struts-html.html#errors"><code>&lt;html:errors&gt;</code></a>
       tag. Please consult its documentation for information on tag attributes
       and usage details.
       </p>
     </info>

     <attribute>
         <name>bundle</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
     </attribute>

     <attribute>
         <name>footer</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
         <since>Struts 1.2.5</since>
     </attribute>

     <attribute>
         <name>header</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
         <since>Struts 1.2.5</since>
     </attribute>

     <attribute>
         <name>locale</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
     </attribute>

     <attribute>
       <name>name</name>
       <required>false</required>
       <rtexprvalue>true</rtexprvalue>
     </attribute>

     <attribute>
         <name>prefix</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
         <since>Struts 1.2.5</since>
     </attribute>

     <attribute>
       <name>property</name>
       <required>false</required>
       <rtexprvalue>true</rtexprvalue>
     </attribute>

     <attribute>
         <name>suffix</name>
         <required>false</required>
         <rtexprvalue>true</rtexprvalue>
         <since>Struts 1.2.5</since>
     </attribute>
  </tag>


  <tag document-attributes="false">
    <name>file</name>
    <summary>Nested Extension -
      Render A File Select Input Field
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedFileTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#file"><code>&lt;html:file&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>accept</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>maxlength</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>size</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>

  <tag document-attributes="false">
    <name>form</name>
    <summary>Nested Extension - Define An Input Form</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedFormTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#form"><code>&lt;html:form&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>action</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
       <name>acceptCharset</name>
       <required>false</required>
       <rtexprvalue>true</rtexprvalue>
     </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>enctype</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>focus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>focusIndex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>method</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onreset</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onsubmit</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>readonly</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>scriptLanguage</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>target</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">
   <name>hidden</name>
    <summary>Nested Extension -
        Render A Hidden Field
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedHiddenTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#hidden"><code>&lt;html:hidden&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
    
        <attribute>
            <name>styleClass</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>

      <attribute>
        <name>styleId</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

     <attribute>
        <name>write</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
     </attribute>
  </tag>

  <tag document-attributes="false">
    <name>image</name>
    <summary>Nested Extension -
    Render an input tag of type "image"
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedImageTag</tagclass>
    <info>
    <p>This tag is an extension of the
    <a href="struts-html.html#image"><code>&lt;html:image&gt;</code></a>
    tag. Please consult its documentation for information on tag attributes
    and usage details.
    </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>align</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>border</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>locale</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>page</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>pageKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>src</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>srcKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">
    <name>img</name>
    <summary>Nested Extension - Render an HTML "img" tag</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedImgTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>
    <p>This tag is an extension of the
    <a href="struts-html.html#img"><code>&lt;html:img&gt;</code></a>
    tag. Please consult its documentation for information on tag attributes
    and usage details.
    </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>align</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>border</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>height</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>hspace</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>imageName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ismap</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>locale</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>lowsrc</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>page</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>pageKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>action</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>module</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramProperty</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramScope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>src</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>srcKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>useLocalEncoding</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>usemap</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>vspace</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>width</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">
    <name>link</name>
    <summary>Nested Extension - Render an HTML anchor or hyperlink</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedLinkTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#link"><code>&lt;html:link&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
      </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>action</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>module</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>anchor</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>forward</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>href</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>indexId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>linkName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>page</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramProperty</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>paramScope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>target</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>transaction</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>useLocalEncoding</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

   <tag document-attributes="false">
      <name>messages</name>
      <summary>
         Nested Extension - Conditionally display a set of accumulated messages.
      </summary>
      <tagclass>org.apache.struts.taglib.nested.html.NestedMessagesTag</tagclass>
      <teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass>
      <bodycontent>JSP</bodycontent>
       <info>
         <p>This tag is an extension of the
         <a href="struts-html.html#messages"><code>&lt;html:messages&gt;</code></a>
         tag. Please consult its documentation for information on tag attributes
         and usage details.
         </p>
       </info>

      <attribute>
        <name>id</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
          <name>bundle</name>
          <required>false</required>
          <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
          <name>locale</name>
          <required>false</required>
          <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
        <name>name</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
        <name>property</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
        <name>header</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
        <name>footer</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>

      <attribute>
        <name>message</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
      </attribute>

   </tag>

  <tag document-attributes="false">
    <name>multibox</name>
    <summary>Nested Extension -
        Render A Checkbox Input Field
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedMultiboxTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#multibox"><code>&lt;html:multibox&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">
    <name>options</name>
    <summary>Nested Extension - Render a Collection of Select Options</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedOptionsTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#options"><code>&lt;html:options&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
      <p>
      <strong>Note:</strong> The nested context of this tag relies on the use
      of the "property" property, and the internal use of the "name" property.
      The nested tags rely on these properties and will attempt to set them
      itself. The <code>&lt;html:options&gt;</code> tag this tag extended
      allows other options for the tag which don't use these properties.
      To take advantage of these options, markup using the
      <code>&lt;html:options&gt;</code> tag instead of the nested tag.
      </p>
      <p>
      For example, the "collections" option allows you to specify a separate
      bean reference which itself is a list of objects with properties
      to access the title and value parts of the html option tag. You can use
      this in a nested context (the list is a property of a nested bean) by
      using the nested define tag and the original options tag.
      </p>
<pre>
&lt;nested:nest property="myNestedLevel" /&gt;
  &lt;nested:define property="collectionList" /&gt;
  &lt;html:options collection="collectionList"
                  property="labelProperty"
             valueProperty="valueProperty" /&gt;
&lt;/nested:nest &gt;
</pre>
    </info>

    <attribute>
      <name>collection</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>filter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

     <attribute>
      <name>labelName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>labelProperty</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">
    <name>optionsCollection</name>
    <summary>Nested Extension -
        Render a Collection of Select Options
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#optionsCollection"
      ><code>&lt;html:optionsCollection&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>filter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>label</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>

  <tag document-attributes="false">
    <name>password</name>
    <summary>Nested Extension -
        Render A Password Input Field
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedPasswordTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#password"><code>&lt;html:password&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>


    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>maxlength</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>readonly</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>redisplay</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>size</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">
    <name>radio</name>
    <summary>Nested Extension -
        Render A Radio Button Input Field
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedRadioTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#radio"><code>&lt;html:radio&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>idName</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>

  <tag document-attributes="false">
    <name>select</name>
    <summary>Nested Extension -
    Render A Select Element
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedSelectTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#select"><code>&lt;html:select&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>multiple</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>size</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>submit</name>
    <summary>Nested Extension - Render A Submit Button</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedSubmitTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#submit"><code>&lt;html:submit&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>


    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>text</name>
    <summary>Nested Extension -
        Render An Input Field of Type text
    </summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedTextTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#text"><code>&lt;html:text&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>


    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>maxlength</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>readonly</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>size</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>textarea</name>
    <summary>Nested Extension - Render A Textarea</summary>
    <tagclass>org.apache.struts.taglib.nested.html.NestedTextareaTag</tagclass>
    <info>
      <p>This tag is an extension of the
      <a href="struts-html.html#textarea"><code>&lt;html:textarea&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>accesskey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>alt</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>altKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>bundle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.7</since>
    </attribute>

    <attribute>
      <name>cols</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>disabled</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>errorKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyle</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>errorStyleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <since>Struts 1.2.5</since>
    </attribute>

    <attribute>
      <name>indexed</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onblur</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onchange</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>ondblclick</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onfocus</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeydown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeypress</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onkeyup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousedown</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmousemove</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseout</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseover</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>onmouseup</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>readonly</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>rows</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>style</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleClass</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>styleId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>tabindex</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>title</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>titleKey</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>





<!-- LOGIC extended tags
********************************************************************************
********************************************************************************
-->

  <tag document-attributes="false">

    <name>empty</name>
    <summary>Nested Extension -
    Evaluate the nested body content of this tag if the requested variable is
    either <code>null</code> or an empty string.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedEmptyTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#empty"><code>&lt;logic:empty&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>equal</name>
    <summary>Nested Extension -
    Evaluate the nested body content of this tag if the requested
    variable is equal to the specified value.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedEqualTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#equal"><code>&lt;logic:equal&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>greaterEqual</name>
    <summary>Nested Extension - Evaluate the nested body content of this tag if the requested
    variable is greater than or equal to the specified value.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#greaterEqual"><code>&lt;logic:greaterEqual&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>greaterThan</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the requested
      variable is greater than the specified value.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterThanTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#greaterThan"><code>&lt;logic:greaterThan&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>iterate</name>
    <summary>Nested Extension -
      Repeat the nested body content of this tag over a specified collection.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedIterateTag</tagclass>
    <teiclass>org.apache.struts.taglib.nested.logic.NestedIterateTei</teiclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#iterate"><code>&lt;logic:iterate&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>collection</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>id</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>indexId</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>length</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>offset</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>type</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>lessEqual</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the requested
      variable is greater than or equal to the specified value.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedLessEqualTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#lessEqual"><code>&lt;logic:lessEqual&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>lessThan</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the requested
      variable is less than the specified value.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedLessThanTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#lessThan"><code>&lt;logic:lessThan&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>match</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the specified value
      is an appropriate substring of the requested variable.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedMatchTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#match"><code>&lt;logic:match&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>location</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">

    <name>messagesNotPresent</name>
    <summary>
       Nested Extension -
       Generate the nested body content of this tag if the specified
       message is not present in this request.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#messagesNotPresent"><code>&lt;logic:messagesNotPresent&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>message</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

  <tag document-attributes="false">

    <name>messagesPresent</name>
    <summary>
       Nested Extension -
       Generate the nested body content of this tag if the specified
       message is present in this request.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#messagesPresent"><code>&lt;logic:messagesPresent&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>message</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>


  <tag document-attributes="false">

    <name>notEmpty</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the requested variable is
      neither <code>null</code> nor an empty string.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedNotEmptyTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#notEmpty"><code>&lt;logic:notEmpty&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>notEqual</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the requested
      variable is not equal to the specified value.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedNotEqualTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#notEqual"><code>&lt;logic:notEqual&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>notMatch</name>
    <summary>Nested Extension -
      Evaluate the nested body content of this tag if the specified value
      is not an appropriate substring of the requested variable.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedNotMatchTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#notMatch"><code>&lt;logic:notMatch&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>location</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>value</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>notPresent</name>
    <summary>Nested Extension -
      Generate the nested body content of this tag if the specified
      value is not present in this request.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedNotPresentTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#notPresent"><code>&lt;logic:notPresent&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>role</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>user</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>
  <tag document-attributes="false">

    <name>present</name>
    <summary>Nested Extension -
      Generate the nested body content of this tag if the specified
      value is present in this request.
    </summary>
    <tagclass>org.apache.struts.taglib.nested.logic.NestedPresentTag</tagclass>
    <bodycontent>JSP</bodycontent>
    <info>
      <p>This tag is an extension of the
      <a href="struts-logic.html#present"><code>&lt;logic:present&gt;</code></a>
      tag. Please consult its documentation for information on tag attributes
      and usage details.
      </p>
    </info>

    <attribute>
      <name>cookie</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>header</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>name</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>parameter</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>property</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>role</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>scope</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>user</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

  </tag>

</taglib>

</body>

</document>
