You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by aj...@apache.org on 2008/02/13 07:35:49 UTC
svn commit: r627281 [2/3] -
/incubator/jspwiki/branches/JSPWIKI_STRIPES_BRANCH/etc/
Added: incubator/jspwiki/branches/JSPWIKI_STRIPES_BRANCH/etc/stripes.tld
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_STRIPES_BRANCH/etc/stripes.tld?rev=627281&view=auto
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_STRIPES_BRANCH/etc/stripes.tld (added)
+++ incubator/jspwiki/branches/JSPWIKI_STRIPES_BRANCH/etc/stripes.tld Tue Feb 12 22:35:48 2008
@@ -0,0 +1,1950 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Copyright 2005-2006 Tim Fennell
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+
+<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
+ version="2.0">
+
+ <description>
+ Provides tags for use with the Stripes presentation framework. There are three main
+ groups of tags in this tag library. First come the HTML form tags. These include
+ the form tag itself as well as tags for most of the input tag variants. The second
+ is a set of tags for output error information, including 'errors', 'individual-error'
+ and others. Last is a set of utility tags. These include the wizard-fields tag which
+ can write out hidden fields for values in the request, the useActionBean tag to use
+ ActionBeans as view helpers and the link tags for generating links similar to forms.
+ </description>
+ <display-name>Stripes Tag Library</display-name>
+ <tlib-version>1.0</tlib-version>
+ <short-name>stripes</short-name>
+ <uri>http://stripes.sourceforge.net/stripes.tld</uri>
+
+ <tag>
+ <description><![CDATA[
+ <p>Tag that generates HTML form fields of type
+ <input type="button" ... /> which render buttons for submitting forms.
+ The only capability offered above and beyond a pure html tag is the ability to lookup
+ the value of the button (i.e. the text on the button that the user sees) from a
+ localized resource bundle.</p>
+
+ <p>The tag will set it's value using the first non-null result from the following list:</p>
+ <ul>
+ <li>formName.buttonName from the localized resource bundle</li>
+ <li>buttonName from the localized resource bundle</li>
+ <li>the body of the tag</li>
+ <li>the value attribute of the tag</li>
+ </ul>
+ ]]></description>
+ <display-name>button</display-name>
+ <name>button</name>
+ <tag-class>net.sourceforge.stripes.tag.InputButtonTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <!-- Start: Standard Form Input attributes -->
+ <attribute><description>The name of the form field.</description><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The size of the form field. (HTML Pass-through)</description><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A default value for the form field. Can be a literal value, or an EL expression.</description><name>value</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)</description><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard Form Input attributes -->
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Implements an HTML tag that generates form fields of type <input type="
+ checkbox"/>.
+ Since a single checkbox widget on a HTML page can have only a single value, the value tag
+ attribute must always resolve to a scalar value which will be converted to a String using
+ the Stripes Formatting system, or by caling toString() if an appropriate Formatter is
+ not found.</p>
+
+ <p>Checkboxes are commonly used in two ways. The first and simplest case uses a single
+ checkbox to set a boolean or Boolean value on the ActionBean. To do this use the
+ following syntax:</p>
+
+ <pre><stripes:checkbox name="likesChocolate"/></pre>
+
+ <p>When the <tt>value</tt> attribute is omitted, as above, the checkbox defaults to
+ the simple behaviour of sending "true" to the server when checked and nothing to the
+ server when unchecked. For this reason it is best to use <tt>boolean</tt> values,
+ or <tt>Boolean</tt> values initialized to Boolean.FALSE.</p>
+
+ <p>The other common usage is to use checkboxes in a manner similar to a multi-select.
+ For example:</p>
+
+<pre>
+<stripes:checkbox name="likes" value="chocolate"/>
+<stripes:checkbox name="likes" value="marshmallows"/>
+<stripes:checkbox name="likes" value="ice cream"/>
+</pre>
+
+ <p>In this case there are multiple checkboxes each with the same name, but different
+ values. A value is submitted to the server for each checked checkbox, and normally
+ bound to an array or List property on the ActionBean.</p>
+
+ <p>Checkboxes perform automatic (re-)population of state. They prefer, in order, values
+ in the HttpServletRequest, values in the ActionBean and lastly values set using
+ checked="" on the page. The "checked" attribute is a complex
+ attribute and may be a Collection, an Array or a scalar Java Object. In the first
+ two cases a check is performed to see if the value in the value="foo"
+ attribute is one of the elements in the checked collection or array. In the last case,
+ the value is matched directly against the String form of the checked attribute.
+ If in any case a checkbox's value matches then a checked="checked"
+ attribute will be added to the HTML written.</p>
+
+ <p>The tag may include a body and if present the body is converted to a String and
+ overrides the <b>checked</b> tag attribute.</p>
+ ]]></description>
+ <display-name>checkbox</display-name>
+ <name>checkbox</name>
+ <tag-class>net.sourceforge.stripes.tag.InputCheckBoxTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <description>
+ References either a scalar object/String or an Array or a Collection. If the value
+ of the checkbox is found to equal or be contained by the 'checked' object then the
+ checkbox will default to rendering as checked.
+ </description>
+ <name>checked</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <attribute><description>The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.</description><name>formatType</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.</description><name>formatPattern</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+
+ <!-- Start: Standard Form Input attributes -->
+ <attribute>
+ <description><![CDATA[
+ The value that will be submitted to the server if this checkbox is in the checked state
+ when clicked. If no value is specified, the value defaults to <b>true</b> (or more
+ correctly Boolean.TRUE). While other inputs like text and password repopulate their
+ state into the value attribute, this is not the case with checkbox, where the value
+ is an invariant.
+ ]]></description>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <attribute><description>The name of the form field.</description><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The size of the form field. (HTML Pass-through)</description><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)</description><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard Form Input attributes -->
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>The errors tag has two modes, one where it displays all validation errors in a list
+ and a second mode when there is a single enclosed field-error tag that has no name attribute
+ in which case this tag iterates over the body, displaying each error in turn in place
+ of the field-error tag.</p>
+
+ <p>In the first mode, where the default output is used, it is possible to change the output
+ for the entire application using a set of resources in the error messages bundle
+ (StripesResources.properties unless you have configured another). If the properties are
+ undefined, the tag will output the text "Validation Errors" in a div with css class errorHeader,
+ then output an unordered list of error messages. The following four resource strings
+ (shown with their default values) can be modified to create different default ouput:</p>
+
+ <ul>
+ <li>stripes.errors.header=<div class="errorHeader">Validation Errors</div><ul></li>
+ <li>stripes.errors.footer=</ul></li>
+ <li>stripes.errors.beforeError=<li></li>
+ <li>stripes.errors.afterError=</li></li>
+ </ul>
+
+ <p>The second mode allows customization of the output for a specific page by nesting
+ the following tag inside the errors tag: <stripes:individual-error>,
+ <stripes:error-header> and <stripes:error-footer>. An example, re-creating
+ the default output using this technique follow:</p>
+
+<pre><stripes:errors>
+ <stripes:errors-header><div class="errorHeader">Validation Errors</div><ul></stripes:errors-header>
+ <li><stripes:individual-error/></li>
+ <stripes:errors-footer></ul></stripes:errors-footer>
+</stripes:errors>
+</pre>
+
+ <p>The errors tag can be used to display errors for a single field by supplying it
+ with a 'field' attribute which matches the name of a field on the page. In this case the tag
+ will display only if errors exist for the named field. In this mode the tag will fist look for
+ resources named:</p>
+
+ <ul>
+ <li>stripes.fieldErrors.header</li>
+ <li>stripes.fieldErrors.footer</li>
+ <li>stripes.fieldErrors.beforeError</li>
+ <li>stripes.fieldErrors.afterError</li>
+ </ul>
+
+ <p>If the <tt>fieldErrors</tt> resources cannot be found, the tag will default to using the
+ sames resources and defaults as when displaying for all fields.</p>
+
+ <p>Similar to the above, field specific, manner of display the errors tag can also be used
+ to output only errors not associated with a field, i.e. global errors. This is done by setting
+ the <tt>globalErrorsOnly</tt> attribute to true.</p>
+
+ <p>This tag has several ways of being attached to the errors of a specific action request.
+ If the tag is inside a form tag, it will display only errors that are associated
+ with that form. If supplied with an 'action' attribute, it will display errors only errors
+ associated with a request to that URL. Finally, if neither is the case, it will display
+ errors associated with the action bean for the current request..</p>
+
+ ]]></description>
+ <display-name>errors</display-name>
+ <name>errors</name>
+ <tag-class>net.sourceforge.stripes.tag.ErrorsTag</tag-class>
+ <tei-class>net.sourceforge.stripes.tag.ErrorsTagExtraInfo</tei-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <description>
+ If supplied, the errors tag will only output errors for a form that posted to the
+ supplied action path. Can be used when there are multiple forms on the page and
+ you wish to display errors in different places for each form, but not necessarily
+ inside of the form tags.
+ </description>
+ <name>action</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ The fully qualified name of an ActionBean class, or alternatively a Class instance
+ for an ActionBean class. An alternative to the 'action' attribute, the 'beanclass'
+ attribute will generate an action appropriate for the ActionBean identified. Note
+ that if an "ActionBean" that does not yet exist is identified an exception will
+ be thrown!
+ </description>
+ <name>beanclass</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <attribute>
+ <description>
+ If supplied, the errors tag will only output errors associated with the
+ named field.
+ </description>
+ <name>field</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ If set to true then the tag will display only errors that are not directly
+ associated with a field, i.e. global errors.
+ </description>
+ <name>globalErrorsOnly</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <description>
+ Tag contents are displayed only when showing the last row of an errors tag.
+ </description>
+ <display-name>errors-footer</display-name>
+ <name>errors-footer</name>
+ <tag-class>net.sourceforge.stripes.tag.ErrorsFooterTag</tag-class>
+ <body-content>JSP</body-content>
+ </tag>
+
+ <tag>
+ <description>
+ Tag contents are displayed only when showing the first row of an errors tag.
+ </description>
+ <display-name>errors-header</display-name>
+ <name>errors-header</name>
+ <tag-class>net.sourceforge.stripes.tag.ErrorsHeaderTag</tag-class>
+ <body-content>JSP</body-content>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Tag that generates HTML form fields of type <input type="file" ... />.
+ The only functionality provided above and beyond a straight HTML input tag is that the
+ tag will find its enclosing form tag and ensure that the for is set to POST instead of
+ GET, and that the encoding type of the form is properly set to multipart/form-data as
+ both these settings are necessary to correctly perform file uploads.</p>
+
+ <p>Does not perform repopulation because default values for
+ <input type="file"/> are not allowed by the HTML specification. One
+ can only imagine this is because a malicous page author could steal a user's files by
+ defaulting the value and using JavaScript to auto-submit forms! As a result the tag
+ does not accept a body because it would have no use for any generated content.</p>
+ ]]></description>
+ <display-name>file</display-name>
+ <name>file</name>
+ <tag-class>net.sourceforge.stripes.tag.InputFileTag</tag-class>
+ <body-content>empty</body-content>
+
+ <!-- Start: Standard Form Input attributes -->
+ <attribute><description>The name of the form field.</description><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The size of the form field. (HTML Pass-through)</description><name>size</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)</description><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard Form Input attributes -->
+
+ <attribute>
+ <description>A comma separated list of mime-types accepted for file uploads. (HTML Pass-through)</description>
+ <name>accept</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description>
+ Stripes' HTML form tag. Provides a standard HTML form tag interface, but allows
+ other stripes input tags to re-populate their values. Also includes a hidden field in
+ the form for the page name that the form is being rendered on (to allow forwarding to
+ the same page in the case of a validation error.
+ </description>
+ <display-name>form</display-name>
+ <name>form</name>
+ <tag-class>net.sourceforge.stripes.tag.FormTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <description>
+ The URL to which this form will post. Expected to be a web-app relative path - the
+ tag will prepend the context path to any action that begins with a slash and does
+ not already contain the context path. Should match a URL to which an ActionBean
+ has been bound. Required unless 'beanclass' is provided.
+ </description>
+ <name>action</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ The fully qualified name of an ActionBean class, or alternatively a Class instance
+ for an ActionBean class. An alternative to the 'action' attribute, the 'beanclass'
+ attribute will generate an action appropriate for the ActionBean identified. Note
+ that if an "ActionBean" that does not yet exist is identified an exception will
+ be thrown!
+ </description>
+ <name>beanclass</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <attribute>
+ <description>
+ The name of the form field that should receive focus when the page is loaded. Two
+ special values are recognized, 'first' and the empty string; these values cause
+ the form to set focus on the first element in the form. If any value is set,
+ and the form has validation errors, the behaviour is altered and the first field
+ with validation errors is focused instead.
+ </description>
+ <name>focus</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ <type>java.lang.String</type>
+ </attribute>
+ <attribute>
+ <description>A comma separated list of content types that it is acceptable to submit through this form. (HTML Pass-through)</description>
+ <name>accept</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>A comma separated list of possible character sets for form data. Will be written to the page as accept-charset. (HTML Pass-through)</description>
+ <name>acceptcharset</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ The mime type used to encode the content of this form. This value will be overridden if one or more Stripes
+ file input tags is used within the body of the form.
+ </description>
+ <name>enctype</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The HTTP method used for sending data to the server. Options are GET and POST. Default is GET. (HTML Pass-through)</description>
+ <name>method</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The unique name of the form. (HTML Pass-through)</description>
+ <name>name</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>Where the target URL is to be opened. One of _blank, _self, _parent and _top. (HTML Pass-through)</description>
+ <name>target</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <attribute>
+ <description>Scripting code run when the form is reset. (HTML Pass-through)</description>
+ <name>onreset</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>Scripting code run prior to the form being submitted to the server, (HTML Pass-through)</description>
+ <name>onsubmit</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Generates one or more <input type="hidden" ... /> HTML tags based on
+ the value supplied. The hidden tag assigns the value attribute by scanning in the
+ following order:
+ <ul>
+ <li>for one or more values with the same name in the HttpServletRequest</li>
+ <li>for a field on the ActionBean with the same name (if a bean instance is present)</li>
+ <li>by collapsing the body content to a String, if a body is present</li>
+ <li>referring to the result of the EL expression contained in the value attribute of the tag.</li>
+ </ul>
+ </p>
+
+ <p>The result of this scan can produce either a Collection, an Array or any other
+ Object. In the first two cases the tag will output an HTML hidden form field tag for
+ each value in the Collection or Array. In all other cases the Object is toString()'d
+ (unless it is null) and a single hidden field will be written.</p>
+ ]]></description>
+ <display-name>hidden</display-name>
+ <name>hidden</name>
+ <tag-class>net.sourceforge.stripes.tag.InputHiddenTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <!-- Start: Standard Form Input attributes -->
+ <attribute><description>The name of the form field.</description><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute>
+ <description>A default value for the form field. Can be a literal value, or an EL expression.</description>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <!-- End: Standard Form Input attributes -->
+ <attribute><description>The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.</description><name>formatType</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.</description><name>formatPattern</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Tag that generates an image input button for use in HTML forms, e.g:</p>
+
+ <pre><input name="foo" type="image" src="/app/foo.gif" alt="foo"/></pre>
+
+ <p>Provides a couple of facilities above and beyond using the plain HTML tag. The main
+ advantage is a localization capability. The tag looks in the Stripes Field Name
+ message bundle for resources to be used as the <tt>src</tt> URL for the image and the
+ <tt>alt</tt> text of the image. In order it will look for and use:</p>
+
+ <ul>
+ <li>resource: <tt>actionPath.inputName.[src|alt]</tt></li>
+ <li>resource: <tt>inputName.[src|alt]</tt></li>
+ <li>tag attributes: <tt>src</tt> and <tt>alt</tt>
+ </ul>
+
+ <p>If localized values exist these are preferred over the values specified directly
+ on the tag.</p>
+
+ <p>Additionally if the 'src' URL (whether acquired from the tag attribute or the
+ resource bundle) starts with a slash, the tag will prepend the context path of the
+ web application.</p>
+ ]]></description>
+ <display-name>image</display-name>
+ <name>image</name>
+ <tag-class>net.sourceforge.stripes.tag.InputImageTag</tag-class>
+ <body-content>empty</body-content>
+
+ <!-- Start: Standard Form Input attributes -->
+ <attribute><description>The name of the form field.</description><name>name</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute>
+ <description>A symbolic value that will get submitted to the server when the image button is clicked. (HTML Pass-through)</description>
+ <name>value</name><required>false</required><rtexprvalue>true</rtexprvalue><type>java.lang.Object</type>
+ </attribute>
+ <!-- End: Standard Form Input attributes -->
+ <attribute>
+ <description>Defines the alignment of text following the image. Deprecated, use style instead. (HTML Pass-through)</description>
+ <name>align</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ The alternative text for the image button. Used only if a localized value cannot be found as described
+ in the in the tag description. (HTML Pass-through)
+ </description>
+ <name>alt</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute><description>Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)</description><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute>
+ <description>
+ The src URL for the image button. If the value starts with a slash it will have the context path
+ prepended. Used only if a localized value cannot be found as described in the tag description. (HTML Pass-through)
+ </description>
+ <name>src</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description>
+ Placeholder tag that is to be used only inside of a errors tag. When nested inside
+ an errors tag, causes the errors tag to operate as an iterator, outputting its body
+ for each error present, placing the text of the error where the individual-error tag
+ is found.
+ </description>
+ <display-name>individual-error</display-name>
+ <name>individual-error</name>
+ <tag-class>net.sourceforge.stripes.tag.IndividualErrorTag</tag-class>
+ <body-content>empty</body-content>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Label tag that can look up localized field labels and render differently when the
+ labelled field is in error. While the label field is usually used to generated form
+ field labels, it can be used to generate HTML label tags with arbitrary localized or
+ non-localized values.</p>
+
+ <p>It is important to understand the relationship between the <tt>name</tt> and
+ <tt>for</tt> attributes of the <tt>stripes:label</tt> tag. The <tt>for</tt> attribute
+ is used directly to generated the <tt>for</tt> attribute of the generated HTML
+ <tt>label</tt> tag, and as such should correspond to the HTML <tt>id</tt> attribute
+ of the input tag for which it is a label. If the <tt>name</tt> attribute is omitted
+ then the value of the <tt>for</tt> attribute will also be used as the <tt>name</tt>
+ attribute.</p>
+
+ <p>The value of the label is set by searching for a non-null value in the following
+ order:</p>
+
+ <ul>
+ <li>{formAction}.{name} in the form field localization bundle</li>
+ <li>{name} in the form field localization bundle</li>
+ <li>The body of the label tag</li>
+ <li>A warning message telling you to supply a label value somewhere!</li>
+ </ul>
+
+ <p>In the case of indexed or mapped form fields (e.g. <tt>foo[3].bar</tt>) the
+ indexing and mapping will be removed from the name prior to using it to lookup
+ labels (e.g. <tt>foo.bar</tt>). This is done to remain consistent with the way
+ field names are looked up for error messages.</p>
+
+ <p>It should be noted that in cases where a form field and HTML control are
+ one-to-one (e.g. text, password, select) the name of the label will usually equal
+ the name of the control. However, this need not be the case. You may use any value
+ for the name of the label, <b>but</b> the label will only perform error rendering
+ correctly if the name is equal to the name of the form field being labelled. To
+ illustrate this point consider the following example:</p>
+
+<pre>
+<th>
+ <stripes:label for="bug.status"/>:
+</th>
+<td>
+ <c:forEach var="status" items="<%=Status.values()%>">
+ <stripes:radio id="bug.status.${stripes:enumName(status)}"
+ name="bug.status"
+ value="${stripes:enumName(status)}"/>
+ <stripes:label for="bug.status.${stripes:enumName(status)}">
+ ${stripes:enumName(status)}
+ </stripes:label>
+ </c:forEach>
+</td>
+</pre>
+
+ <p>The above example uses one label tag at the top (with <tt>for="bug.status"</tt>) that
+ labels a row in the table and will display differently when the <tt>bug.status</tt> field
+ is in error. It then employs a label tag for each radio button. These are bound to the
+ individual radio buttons (clicking on the label will select the appropriate radio button),
+ and default to the name of the enum value if a localized name isn't found. Since these
+ labels do not match the field name exactly, they will not render differently when the
+ field is in error.</p>
+ ]]></description>
+ <display-name>label</display-name>
+ <name>label</name>
+ <tag-class>net.sourceforge.stripes.tag.InputLabelTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <description>
+ The name of the field being labelled (or of the label if it is not specific to a
+ field) if the name of the field is not the same as the HTML id of the field. If the
+ name and id are the same, the for attribute should be used alone.
+ </description>
+ <name>name</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <attribute>
+ <description>
+ The HTML id of the field/control being labelled. If the name attribute is
+ omitted, the value of this attribute will also be used as the name.
+ </description>
+ <name>for</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Tag that generates HTML links, used for linking to pages and ActionBean events
+ within a Stripes application. Works in concert with zero or more nested link-param tags
+ in order to allow addition of arbitrary parameters to any URL. The body of the tag,
+ minus any link-param tags, is trimmed for whitespace at either end, and is then used
+ as the contents of the link body.</p>
+
+ <p>There are two attributes which are not a mirrors of attributes on the HTML anchor
+ tag. The first is the 'event' attribute. This allows specification of a specific event
+ to trigger when linking to an ActionBean URL. The second is 'beanclass' which allows
+ the specification of the class name or Class instance for an ActionBean as an
+ alternative to specifying the 'href' attribute.</p>
+ ]]></description>
+ <display-name>link</display-name>
+ <name>link</name>
+ <tag-class>net.sourceforge.stripes.tag.LinkTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <description>
+ The (optional) event that should be fired if the link is to an ActionBean. If not
+ supplied then the tag will not render an explicit event (but one may by built in
+ to the URL/href supplied).
+ </description>
+ <name>event</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ The fully qualified name of an ActionBean class, or alternatively a Class instance
+ for an ActionBean class. An alternative to the 'href' attribute, the 'beanclass'
+ attribute will generate an href appropriate for the ActionBean identified. Note
+ that if an ActionBean that does not yet exist is identified an exception will
+ be thrown!
+ </description>
+ <name>beanclass</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <attribute>
+ <description>The character set used to encode the referenced page. (HTML Pass-through)</description>
+ <name>charset</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>Used to define a region for clicking in an image map. (HTML Pass-through)</description>
+ <name>coords</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ The target URL. If the URL starts with a slash and does not contain the current
+ web application context path, then the context path will be prepended to the URL.
+ (HTML Pass-through)
+ </description>
+ <name>href</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The language of the target page. (HTML Pass-through)</description>
+ <name>hreflang</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The name of an anchor. (HTML Pass-through)</description>
+ <name>name</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ Specified the relationship between the current page and the target URL.
+ (HTML Pass-through)
+ </description>
+ <name>rel</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>Like rel, but in reverse.</description>
+ <name>rev</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>Used to define a shape within an image map.</description>
+ <name>shape</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The frame or window in which the link will open.</description>
+ <name>target</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The MIME type of the target URL.</description>
+ <name>type</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ <dynamic-attributes>false</dynamic-attributes>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <b>DEPRECATED. Use the 'param' tag instead.</b>
+ Used to add parameters to a link that has been created with a stripes:link tag. If
+ the value attribute is present it will be used. If the value attribute is not present,
+ then the body of the tag will be used as the parameter value. The value attribute
+ may identify either a scalar value, an Array or a Collection. In the latter two cases
+ a URL parameter will be added per value in the Array or Collection.
+ ]]></description>
+ <display-name>link-param</display-name>
+ <name>link-param</name>
+ <tag-class>net.sourceforge.stripes.tag.LinkParamTag</tag-class>
+ <body-content>JSP</body-content>
+ <attribute>
+ <description>The name of the URL parameter.</description>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>The value (or values) of the URL parameter.</description>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Displays a list of non-error messages to the user. The list of messages can come from
+ either the request (preferred) or the session (checked 2nd). Lists of messages can be stored
+ under any arbitrary key in request or session and the key can be specified to the messages
+ tag. If no key is specified then the default key (and therefore default set of messages) is
+ used. Note that by default the ActionBeanContext stores messages in a flash scope which
+ causes them to be exposed as request attributes in both the current and subsequent requests
+ (assuming a redirect is used).</p>
+
+ <p>While similar in concept to the ErrorsTag, the MessagesTag is significantly simpler. It deals
+ with a List of Message objects, and does not understand any association between messages and
+ form fields, or even between messages and forms. It is designed to be used to show arbitrary
+ messages to the user, the prime example being a confirmation message displayed on the subsequent
+ page following an action.</p>
+
+ <p>The messages tag outputs a header before the messages, the messages themselves, and a footer
+ after the messages. Default values are set for each of these four items. Different values
+ can be specified in the error messages resource bundle (StripesResources.properties unless you
+ have configured another). The default configuration would look like this:
+
+ <ul>
+ <li>stripes.messages.header=<ul class="messages"></li>
+ <li>stripes.messages.footer=</ul></li>
+ <li>stripes.messages.beforeMessage=<li></li>
+ <li>stripes.messages.afterMessage=</li></li>
+ </ul>
+
+ <p>It should also be noted that while the errors tag supports custom headers and footers
+ through the use of nested tags, the messages tag does not support this. In fact the
+ messages tag does not support body content at all - it will simply be ignored.</p>
+ ]]></description>
+ <display-name>messages</display-name>
+ <name>messages</name>
+ <tag-class>net.sourceforge.stripes.tag.MessagesTag</tag-class>
+ <body-content>empty</body-content>
+ <attribute>
+ <description>
+ The name of the request or session attribute that the tag will use to find
+ messages for display.
+ </description>
+ <name>key</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Generates an <option value="foo">Fooey</option> HTML tag.
+ Coordinates with an enclosing select tag to determine it's state (i.e. whether or not
+ it is selected.) As a result some of the logic regarding state repopulation is a bit
+ complex.</p>
+
+ <p>Since options can have only a single value per option the value attribute of the tag
+ must be a scalar, which will be converted into a String using a Formatter if an
+ appropriate one can be found, otherwise the toString() method will be invoked.The
+ presence of a "selected" attribute is used as an indication that this option
+ believes it should be selected by default - the value (as opposed to the presence)
+ of the selected attribute is never used....</p>
+
+ <p>The option tag delegates to its enclosing select tag to determine whether or not it
+ should be selected. See the stripes:select for documentation on how it determines
+ selection status. If the select tag <em>has no opinion</em> on selection state
+ (note that this is not the same as select tag deeming the option should not be selected)
+ then the presence of the selected attribute (or lack thereof) is used to turn selection
+ on or off.</p>
+
+ <p>If the option has a body then the String value of that body will be used to generate
+ the body of the generated HTML option. If the body is empty or not present then the
+ label attribute will be written into the body of the tag.</p>
+ ]]></description>
+ <display-name>option</display-name>
+ <name>option</name>
+ <tag-class>net.sourceforge.stripes.tag.InputOptionTag</tag-class>
+ <body-content>JSP</body-content>
+
+ <attribute>
+ <description>
+ The value that will be submitted to the server if this option is selected. Will be
+ rendered as a String using the Stripes Formatting service, which will apply a
+ formatter if an applicable one is found, or call toString() if one is not.
+ </description>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <type>java.lang.Object</type>
+ </attribute>
+ <attribute>
+ <description>A value to use as the body of the generated HTML label tag.</description>
+ <name>label</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute>
+ <description>
+ If present, and the parent select tag had no value= attribute, causes
+ the option to be selected by default. The value is ignored, only presence in meaningful.
+ </description>
+ <name>selected</name><required>false</required><rtexprvalue>true</rtexprvalue>
+ </attribute>
+ <attribute><description>Disables the input element when it first loads so that the user can not write text in it, or select it. (HTML Pass-through)</description><name>disabled</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The type used to format the object. If the value is a date, valid values are 'date', 'time' and 'datetime'. If the value is a Number, valid values are 'number', 'percentage' and 'currency'.</description><name>formatType</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The pattern to apply. Can be either a named pattern or an actual pattern as understood by java.text.DateFormat or java.text.NumberFormat as appropriate for the type of object being formatted.</description><name>formatPattern</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+
+ <!-- Start: Standard HTML attributes -->
+ <attribute><description>Keyboard shortcut to access the element. (HTML Pass-through)</description><name>accesskey</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The CSS class to be applied to the element. (HTML Pass-through)</description><name>class</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Text direction. (HTML Pass-through)</description><name>dir</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>A unique identifier for the HTML tag on the pgae. (HTML Pass-through)</description><name>id</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The language code of the element. (HTML Pass-through)</description><name>lang</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element loses focus. (HTML Pass-through)</description><name>onblur</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element changes. (HTML Pass-through)</description><name>onchange</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on each mouse click. (HTML Pass-through)</description><name>onclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run on a double-click of the mouse. (HTML Pass-through)</description><name>ondblclick</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the element acquires focus. (HTML Pass-through)</description><name>onfocus</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is depressed. (HTML Pass-through)</description><name>onkeydown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is pressed and released. (HTML Pass-through)</description><name>onkeypress</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a key is released. (HTML Pass-through)</description><name>onkeyup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is depressed. (HTML Pass-through)</description><name>onmousedown</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer is moved. (HTML Pass-through)</description><name>onmousemove</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves out of the element. (HTML Pass-through)</description><name>onmouseout</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when the mouse pointer moves over the element. (HTML Pass-through)</description><name>onmouseover</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when a mouse button is released. (HTML Pass-through)</description><name>onmouseup</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Scripting code run when an element is selected. (HTML Pass-through)</description><name>onselect</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Inline CSS style fragment that applies to the element (HTML Pass-through)</description><name>style</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>The tab order of the element. (HTML Pass-through)</description><name>tabindex</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <attribute><description>Tool-tip text for the element. (HTML Pass-through)</description><name>title</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute>
+ <!-- End: Standard HTML attributes -->
+ </tag>
+
+ <tag>
+ <description><![CDATA[
+ <p>Writes a set of <option value="foo">bar</option> tags to the
+ page based on the contents of a Collection. Each element in the collection is
+ represented by a single option tag on the page. Uses the label and value attributes
+ on the tag to name the properties of the objects in the Collection that should be used
+ to generate the body of the HTML option tag and the value attribute of the HTML option
+ tag respectively. If either (or both) of the label or value properties are ommitted
+ the item itself will be used for the label/value instead - this is done to support
+ collections of simple types like Strings and Numbers.</p>
+
+ <p>E.g. a tag declaration that looks like:</p>
+ <pre><stripes:options-collection collection="${cats}" value="catId" label="name"/></pre>
+
+ <p>would cause the container to look for a Collection called "cats" across
+ the various JSP scopes and set it on the tag. The tag would then proceed to iterate
+ through that collection calling getCatId() and getName() on each cat to produce
+ HTML option tags.</p>
+
+ <p>The tag will attempt to localize the labels attributes of the option tags that are
+ generated. To do this it will look up labels in the field resource bundle using:</p>
+
+ <ul>
+ <li>{className}.{labelPropertyValue}</li>
+ <li>{packageName}.{className}.{labelPropertyValue}</li>
+ <li>{className}.{valuePropertyValue}</li>
+ <li>{packageName}.{className}.{valuePropertyValue}</li>
+ </ul>
+
+ <p>For example for a class com.myco.Gender supplied to the options-collection tag with
+ label="key" and value="description", when rendering for an instance
+ Gender[key="M", description="Male"] the following localized properites will be looked for:
+
+ <ul>
+ <li>Gender.Male</li>
+ <li>com.myco.Gender.Male</li>
+ <li>Gender.M</li>
+ <li>com.myco.Gender.M</li>
+ </ul>
+
[... 887 lines stripped ...]