WW-4295 finishes work
Conflicts:
core/src/main/resources/template/simple/checkboxlist.ftl
core/src/site/resources/tags/checkboxlist.html
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/3b25242c
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/3b25242c
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/3b25242c
Branch: refs/heads/develop
Commit: 3b25242c7d98d6564d81ec39f0df54bc02181f71
Parents: 935cd33 8e6f198
Author: Lukasz Lenart <[email protected]>
Authored: Wed Jul 30 09:10:59 2014 +0200
Committer: Lukasz Lenart <[email protected]>
Committed: Wed Jul 30 09:10:59 2014 +0200
----------------------------------------------------------------------
.../blank/src/main/java/example/HelloWorld.java | 7 ++++
apps/blank/src/main/java/example/YesNo.java | 5 +++
.../main/resources/example/package.properties | 2 +
.../webapp/WEB-INF/jsp/example/HelloWorld.jsp | 2 +
.../apache/struts2/components/ListUIBean.java | 22 ++++++++++
.../struts2/views/jsp/ui/AbstractListTag.java | 12 ++++++
.../resources/template/simple/checkboxlist.ftl | 10 +++--
.../main/resources/template/simple/radiomap.ftl | 8 +++-
.../main/resources/template/simple/select.ftl | 13 +++++-
core/src/site/resources/tags/checkboxlist.html | 16 +++++++
core/src/site/resources/tags/doubleselect.html | 16 +++++++
.../resources/tags/inputtransferselect.html | 16 +++++++
.../resources/tags/optiontransferselect.html | 16 +++++++
core/src/site/resources/tags/radio.html | 16 +++++++
core/src/site/resources/tags/select.html | 16 +++++++
core/src/site/resources/tags/updownselect.html | 16 +++++++
.../views/jsp/ui/LocaleKeyValueTest.java | 11 +++++
.../struts2/views/jsp/ui/LocaleTestAction.java | 17 ++++++++
.../struts2/views/jsp/ui/OptGroupTest.java | 44 ++++++++++++++++++--
.../apache/struts2/views/jsp/ui/OptGroup-6.txt | 40 ++++++++++++++++++
20 files changed, 295 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/main/resources/template/simple/checkboxlist.ftl
----------------------------------------------------------------------
diff --cc core/src/main/resources/template/simple/checkboxlist.ftl
index 35c1fd3,be5f55a..d50a98f
--- a/core/src/main/resources/template/simple/checkboxlist.ftl
+++ b/core/src/main/resources/template/simple/checkboxlist.ftl
@@@ -29,10 -29,14 +29,14 @@@
<#else>
<#assign itemKey = stack.findValue('top')/>
</#if>
- <#if parameters.listValue??>
+ <#if parameters.listLabelKey??>
+ <#-- checks the valueStack for the 'valueKey.' The valueKey is then
looked-up in the locale
+ file for it's localized value. This is then used as a label -->
+ <#assign itemValue =
struts.getText(stack.findString(parameters.listLabelKey))/>
+ <#elseif parameters.listValue??>
- <#assign itemValue =
stack.findString(parameters.listValue)?default("")/>
+ <#assign itemValue = stack.findString(parameters.listValue)!""/>
- <#else>
- <#assign itemValue = stack.findString('top')/>
+ <#else>
+ <#assign itemValue = stack.findString('top')/>
</#if>
<#if parameters.listCssClass??>
<#if stack.findString(parameters.listCssClass)??>
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/main/resources/template/simple/radiomap.ftl
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/main/resources/template/simple/select.ftl
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/checkboxlist.html
----------------------------------------------------------------------
diff --cc core/src/site/resources/tags/checkboxlist.html
index ac77ab7,1bcb2ea..5359aa9
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@@ -1,440 -1,432 +1,456 @@@
-<!--
-This file is generated during the build by processing Component class
annotations.
-Please do not edit it directly.
--->
-<html>
- <head>
- <title>checkboxlist</title>
- </head>
-
- <body>
- <h1>Tag Name: checkboxlist</h1>
- <h2>Description</h2>
- <p>
- <!-- START SNIPPET: tagdescription -->
- Render a list of checkboxes
- <!-- END SNIPPET: tagdescription -->
- </p>
-
- <h2>Attributes</h2>
- <!-- START SNIPPET: tagattributes -->
- <table width="100%">
- <tr>
- <td colspan="6"><h4>Dynamic Attributes
Allowed:</h4> true</td>
- </tr>
- <tr>
- <td colspan="6"> </td>
- </tr>
- <tr>
- <th align="left" valign="top"><h4>Name</h4></th>
- <th align="left"
valign="top"><h4>Required</h4></th>
- <th align="left"
valign="top"><h4>Default</h4></th>
- <th align="left"
valign="top"><h4>Evaluated</h4></th>
- <th align="left" valign="top"><h4>Type</h4></th>
- <th align="left"
valign="top"><h4>Description</h4></th>
- </tr>
- <tr>
- <td align="left"
valign="top">accesskey</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html accesskey attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">cssClass</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The css
class to use for element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">cssErrorClass</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The css
error class to use for element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">cssErrorStyle</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The css
error style definitions for element to use</td>
- </tr>
- <tr>
- <td align="left"
valign="top">cssStyle</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The css
style definitions for element to use</td>
- </tr>
- <tr>
- <td align="left"
valign="top">disabled</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html disabled attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">errorPosition</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Define
error position of form element (top|bottom)</td>
- </tr>
- <tr>
- <td align="left" valign="top">id</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">HTML id
attribute</td>
- </tr>
- <tr>
- <td align="left"
valign="top">javascriptTooltip</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">Boolean</td>
- <td align="left" valign="top">Use
JavaScript to generate tooltips</td>
- </tr>
- <tr>
- <td align="left" valign="top">key</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
key (name, value, label) for this particular component</td>
- </tr>
- <tr>
- <td align="left" valign="top">label</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Label
expression used for rendering an element specific label</td>
- </tr>
- <tr>
- <td align="left"
valign="top">labelSeparator</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top">:</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">String
that will be appended to the label</td>
- </tr>
- <tr>
- <td align="left"
valign="top">labelposition</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Define
label position of form element (top/left)</td>
- </tr>
- <tr>
- <td align="left" valign="top">list</td>
- <td align="left"
valign="top"><strong>true</strong></td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Iterable
source to populate from. If the list is a Map (key, value), the Map key will
become the option 'value' parameter and the Map value will become the option
body.</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listCssClass</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Property
of list objects to get css class from</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listCssStyle</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Property
of list objects to get css style from</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listKey</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top"> Property
of list objects to get field value from</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listLabelKey</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Property
of list objects to be used to lookup for localised version of field label</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listTitle</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Property
of list objects to get title from</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listValue</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Property
of list objects to get field content from</td>
- </tr>
- <tr>
- <td align="left"
valign="top">listValueKey</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top"> Property
of list objects to get field value label from</td>
- </tr>
- <tr>
- <td align="left" valign="top">name</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The name
to set for element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onblur</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top"> Set the
html onblur attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onchange</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onchange attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onclick</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onclick attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">ondblclick</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html ondblclick attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onfocus</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onfocus attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onkeydown</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onkeydown attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onkeypress</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onkeypress attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onkeyup</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onkeyup attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onmousedown</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onmousedown attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onmousemove</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onmousemove attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onmouseout</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onmouseout attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onmouseover</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onmouseover attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onmouseup</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onmouseup attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">onselect</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html onselect attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">requiredLabel</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">Boolean</td>
- <td align="left" valign="top">If set to
true, the rendered element will indicate that input is required</td>
- </tr>
- <tr>
- <td align="left"
valign="top">requiredPosition</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Define
required position of required form element (left|right)</td>
- </tr>
- <tr>
- <td align="left"
valign="top">tabindex</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html tabindex attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">template</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The
template (other than default) to use for rendering the element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">templateDir</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The
template directory.</td>
- </tr>
- <tr>
- <td align="left" valign="top">theme</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">The theme
(other than default) to use for rendering the element</td>
- </tr>
- <tr>
- <td align="left" valign="top">title</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
html title attribute on rendered html element</td>
- </tr>
- <tr>
- <td align="left"
valign="top">tooltip</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Set the
tooltip of this particular component</td>
- </tr>
- <tr>
- <td align="left"
valign="top">tooltipConfig</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left"
valign="top">Deprecated. Use individual tooltip configuration attributes
instead.</td>
- </tr>
- <tr>
- <td align="left"
valign="top">tooltipCssClass</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">StrutsTTClassic</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">CSS class
applied to JavaScrip tooltips</td>
- </tr>
- <tr>
- <td align="left"
valign="top">tooltipDelay</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">Classic</td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Delay in
milliseconds, before showing JavaScript tooltips </td>
- </tr>
- <tr>
- <td align="left"
valign="top">tooltipIconPath</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Icon path
used for image that will have the tooltip</td>
- </tr>
- <tr>
- <td align="left" valign="top">value</td>
- <td align="left" valign="top">false</td>
- <td align="left" valign="top"></td>
- <td align="left" valign="top">false</td>
- <td align="left"
valign="top">String</td>
- <td align="left" valign="top">Preset
the value of input element.</td>
- </tr>
- </table>
- <!-- END SNIPPET: tagattributes -->
- </body>
-</html>
-
+<!--
+This file is generated during the build by processing Component class
annotations.
+Please do not edit it directly.
+-->
+<html>
+ <head>
+ <title>checkboxlist</title>
+ </head>
+
+ <body>
+ <h1>Tag Name: checkboxlist</h1>
+ <h2>Description</h2>
+ <p>
+ <!-- START SNIPPET: tagdescription -->
+ Render a list of checkboxes
+ <!-- END SNIPPET: tagdescription -->
+ </p>
+
+ <h2>Attributes</h2>
+ <!-- START SNIPPET: tagattributes -->
+ <table width="100%">
+ <tr>
+ <td colspan="6"><h4>Dynamic Attributes
Allowed:</h4> true</td>
+ </tr>
+ <tr>
+ <td colspan="6"> </td>
+ </tr>
+ <tr>
+ <th align="left" valign="top"><h4>Name</h4></th>
+ <th align="left"
valign="top"><h4>Required</h4></th>
+ <th align="left"
valign="top"><h4>Default</h4></th>
+ <th align="left"
valign="top"><h4>Evaluated</h4></th>
+ <th align="left" valign="top"><h4>Type</h4></th>
+ <th align="left"
valign="top"><h4>Description</h4></th>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">accesskey</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html accesskey attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">class</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The css
class to use for element - it's an alias of cssClass attribute.</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">cssClass</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The css
class to use for element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">cssErrorClass</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The css
error class to use for element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">cssErrorStyle</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The css
error style definitions for element to use</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">cssStyle</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The css
style definitions for element to use</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">disabled</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html disabled attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">errorPosition</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Define
error position of form element (top|bottom)</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">id</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">HTML id
attribute</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">javascriptTooltip</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">Boolean</td>
+ <td align="left" valign="top">Use
JavaScript to generate tooltips</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">key</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
key (name, value, label) for this particular component</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">label</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Label
expression used for rendering an element specific label</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">labelSeparator</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">:</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">String
that will be appended to the label</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">labelposition</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Define
label position of form element (top/left)</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">list</td>
+ <td align="left"
valign="top"><strong>true</strong></td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Iterable
source to populate from. If the list is a Map (key, value), the Map key will
become the option 'value' parameter and the Map value will become the option
body.</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">listCssClass</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Property
of list objects to get css class from</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">listCssStyle</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Property
of list objects to get css style from</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">listKey</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top"> Property
of list objects to get field value from</td>
+ </tr>
+ <tr>
++ <td align="left"
valign="top">listLabelKey</td>
++ <td align="left" valign="top">false</td>
++ <td align="left" valign="top"></td>
++ <td align="left" valign="top">false</td>
++ <td align="left"
valign="top">String</td>
++ <td align="left" valign="top">Property
of list objects to be used to lookup for localised version of field label</td>
++ </tr>
++ <tr>
+ <td align="left"
valign="top">listTitle</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Property
of list objects to get title from</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">listValue</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Property
of list objects to get field content from</td>
+ </tr>
+ <tr>
++ <td align="left"
valign="top">listValueKey</td>
++ <td align="left" valign="top">false</td>
++ <td align="left" valign="top"></td>
++ <td align="left" valign="top">false</td>
++ <td align="left"
valign="top">String</td>
++ <td align="left" valign="top"> Property
of list objects to get field value label from</td>
++ </tr>
++ <tr>
+ <td align="left" valign="top">name</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The name
to set for element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onblur</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top"> Set the
html onblur attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onchange</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onchange attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onclick</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onclick attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">ondblclick</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html ondblclick attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onfocus</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onfocus attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onkeydown</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onkeydown attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onkeypress</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onkeypress attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onkeyup</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onkeyup attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onmousedown</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onmousedown attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onmousemove</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onmousemove attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onmouseout</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onmouseout attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onmouseover</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onmouseover attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onmouseup</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onmouseup attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">onselect</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html onselect attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">readonly</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">Boolean</td>
+ <td align="left" valign="top">Whether
the input is readonly</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">requiredLabel</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">Boolean</td>
+ <td align="left" valign="top">If set to
true, the rendered element will indicate that input is required</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">requiredPosition</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Define
required position of required form element (left|right)</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">style</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The css
style definitions for element to use - it's an alias of cssStyle attribute.</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">tabindex</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html tabindex attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">template</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The
template (other than default) to use for rendering the element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">templateDir</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The
template directory.</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">theme</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">The theme
(other than default) to use for rendering the element</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">title</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
html title attribute on rendered html element</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">tooltip</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Set the
tooltip of this particular component</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">tooltipConfig</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left"
valign="top">Deprecated. Use individual tooltip configuration attributes
instead.</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">tooltipCssClass</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">StrutsTTClassic</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">CSS class
applied to JavaScrip tooltips</td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">tooltipDelay</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">Classic</td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Delay in
milliseconds, before showing JavaScript tooltips </td>
+ </tr>
+ <tr>
+ <td align="left"
valign="top">tooltipIconPath</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Icon path
used for image that will have the tooltip</td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">value</td>
+ <td align="left" valign="top">false</td>
+ <td align="left" valign="top"></td>
+ <td align="left" valign="top">false</td>
+ <td align="left"
valign="top">String</td>
+ <td align="left" valign="top">Preset
the value of input element.</td>
+ </tr>
+ </table>
+ <!-- END SNIPPET: tagattributes -->
+ </body>
+</html>
+
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/doubleselect.html
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/inputtransferselect.html
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/optiontransferselect.html
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/radio.html
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/select.html
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/3b25242c/core/src/site/resources/tags/updownselect.html
----------------------------------------------------------------------