Modified: websites/production/struts/content/docs/json-plugin.html
==============================================================================
--- websites/production/struts/content/docs/json-plugin.html (original)
+++ websites/production/struts/content/docs/json-plugin.html Wed Dec 31
13:40:50 2014
@@ -138,16 +138,8 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><p>The JSON plugin provides a "json"
result type that serializes actions into JSON. The serialization process is
recursive, meaning that the whole object graph, starting on the action class
(base class not included) will be serialized (root object can be customized
using the "root" attribute). If the interceptor is used, the action will be
populated from the JSON content in the request, these are the rules of the
interceptor:</p>
-
-<ol><li>The "content-type" must be "application/json"</li><li>The JSON content
must be well formed, see <a shape="rect" class="external-link"
href="http://www.json.org" rel="nofollow">json.org</a> for
grammar.</li><li>Action must have a public "setter" method for fields that must
be populated.</li><li>Supported types for population are: Primitives
(int,long...String), Date, List, Map, Primitive Arrays, Other class (more on
this later), and Array of Other class.</li><li>Any object in JSON, that is to
be populated inside a list, or a map, will be of type Map (mapping from
properties to values), any whole number will be of type Long, any decimal
number will be of type Double, and any array of type List.</li></ol>
-
-
-<p>Given this JSON string:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-{
+ <div id="ConfluenceContent"><p>The JSON pluginprovides a "json"
result type that serializes actions into JSON. The serialization process is
recursive, meaning that the whole object graph, starting on the action class
(base class not included) will be serialized (root object can be customized
using the "root" attribute). If the interceptor is used, the action will be
populated from the JSON content in the request, these are the rules of the
interceptor:</p><ol><li>The "content-type" must be
"application/json"</li><li>The JSON content must be well formed, see <a
shape="rect" class="external-link" href="http://www.json.org"
rel="nofollow">json.org</a> for grammar.</li><li>Action must have a public
"setter" method for fields that must be populated.</li><li>Supported types for
population are: Primitives (int,long...String), Date, List, Map, Primitive
Arrays, Other class (more on this later), and Array of Other class.</li><li>Any
object in JSON, that is to be populated inside
a list, or a map, will be of type Map (mapping from properties to values), any
whole number will be of type Long, any decimal number will be of type Double,
and any array of type List.</li></ol><p>Given this JSON string:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[{
"doubleValue": 10.10,
"nestedBean": {
"name": "Mr Bean"
@@ -158,27 +150,20 @@ under the License.
"array": [10, 20]
}
]]></script>
-</div></div>
-
-<p>The action must have a "setDoubleValue" method, taking either a "float" or
a "double" argument (the interceptor will convert the value to the right one).
There must be a "setNestedBean" whose argument type can be any class, that has
a "setName" method taking as argument an "String". There must be a "setList"
method that takes a "List" as argument, that list will contain: "A" (String),
10 (Long), 20.20 (Double), Map ("firstName" -> "El Zorro"). The "setArray"
method can take as parameter either a "List", or any numeric array.</p>
-
- <div class="aui-message success shadowed information-macro">
+</div></div><p>The action must have a "setDoubleValue" method, taking either a
"float" or a "double" argument (the interceptor will convert the value to the
right one). There must be a "setNestedBean" whose argument type can be any
class, that has a "setName" method taking as argument an "String". There must
be a "setList" method that takes a "List" as argument, that list will contain:
"A" (String), 10 (Long), 20.20 (Double), Map ("firstName" -> "El Zorro").
The "setArray" method can take as parameter either a "List", or any numeric
array.</p> <div class="aui-message success shadowed information-macro">
<span class="aui-icon icon-success">Icon</span>
<div class="message-content">
- <p>So serialize your objects to JSON in javascript
see <a shape="rect" class="external-link" href="http://json.org/json2.js"
rel="nofollow">json2</a></p>
+ <p>So serialize your objects to JSON in javascript
see <a shape="rect" class="external-link" href="http://json.org/json2.js"
rel="nofollow">json2</a>.</p>
</div>
</div>
-
-
-<h2 id="JSONPlugin-Installation">Installation</h2>
-
-<p>This plugin can be installed by copying the plugin jar into your
application's <code>/WEB-INF/lib</code> directory. No other files need to be
copied or created.</p>
-
-<p>To use maven, add this to your pom:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<dependencies>
+ <div class="aui-message warning shadowed information-macro">
+ <span class="aui-icon icon-warning">Icon</span>
+ <div class="message-content">
+ <p><code>root</code> attribute must be set on the
JSONInterceptor when dealing with JSON array.</p>
+ </div>
+ </div>
+<h2 id="JSONPlugin-Installation">Installation</h2><p>This plugin can be
installed by copying the plugin jar into your application's
<code>/WEB-INF/lib</code> directory. No other files need to be copied or
created.</p><p>To use maven, add this to your pom:</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<dependencies>
...
<dependency>
<groupId>org.apache.struts</groupId>
@@ -188,20 +173,8 @@ under the License.
...
</dependencies>
]]></script>
-</div></div>
-
-<h2 id="JSONPlugin-CustomizingSerializationandDeserialization">Customizing
Serialization and Deserialization</h2>
-<p>Use the JSON annotation to customize the serialization/deserialization
process. Available JSON annotation fields:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Serialization</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Deserialization</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Customize field name</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>empty</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>no</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>serialize</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Include in serialization</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>deserialize</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Include in
deserialization</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>yes</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>format</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Format used to format/parse a Date field</p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p>"yyyy-MM-dd'T'HH:mm:ss"</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>yes</p></td></tr></tbody></table></div>
-
-
-<h3 id="JSONPlugin-Excludingproperties">Excluding properties</h3>
-<p>A comma-delimited list of regular expressions can be passed to the JSON
Result and Interceptor, properties matching any of these regular expressions
will be ignored on the serialization process:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<!-- Result fragment -->
+</div></div><h2
id="JSONPlugin-CustomizingSerializationandDeserialization">Customizing
Serialization and Deserialization</h2><p>Use the JSON annotation to customize
the serialization/deserialization process. Available JSON annotation
fields:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Serialization</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Deserialization</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Customize field name</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>empty</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confl
uenceTd"><p>no</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>serialize</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Include in serialization</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>no</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>deserialize</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Include in deserialization</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>yes</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>format</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Format used to format/parse a Date field</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>"yyyy-MM-dd'T'HH:mm:ss"</p></
td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td
colspan="1" rowspan="1"
class="confluenceTd"><p>yes</p></td></tr></tbody></table></div><h3
id="JSONPlugin-Excludingproperties">Excluding properties</h3><p>A
comma-delimited list of regular expressions can be passed to the JSON Result
and Interceptor, properties matching any of these regular expressions will be
ignored on the serialization process:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<!-- Result fragment -->
<result type="json">
<param name="excludeProperties">
login.password,
@@ -218,24 +191,15 @@ under the License.
</param>
</interceptor-ref>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Includingproperties">Including properties</h3>
-<p>A comma-delimited list of regular expressions can be passed to the JSON
Result to restrict which properties will be serialized. ONLY properties
matching any of these regular expressions will be included in the serialized
output.</p>
-
- <div class="aui-message warning shadowed information-macro">
+</div></div><h3 id="JSONPlugin-Includingproperties">Including
properties</h3><p>A comma-delimited list of regular expressions can be passed
to the JSON Result to restrict which properties will be serialized. ONLY
properties matching any of these regular expressions will be included in the
serialized output.</p> <div class="aui-message warning shadowed
information-macro">
<p class="title">Note</p>
<span class="aui-icon icon-warning">Icon</span>
<div class="message-content">
-
-<p>Exclude property expressions take precedence over include property
expressions. That is, if you use include and exclude property expressions on
the same result, include property expressions will not be applied if an exclude
exclude property expression matches a property first.</p>
+ <p>Exclude property expressions take precedence
over include property expressions. That is, if you use include and exclude
property expressions on the same result, include property expressions will not
be applied if an exclude exclude property expression matches a property
first.</p>
</div>
</div>
-
-
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<!-- Result fragment -->
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<!-- Result fragment -->
<result type="json">
<param name="includeProperties">
^entries\[\d+\]\.clientNumber,
@@ -244,90 +208,49 @@ under the License.
</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-RootObject">Root Object</h3>
-<p>Use the "root" attribute(OGNL expression) to specify the root object to be
serialized. </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-RootObject">Root Object</h3><p>Use the "root"
attribute(OGNL expression) to specify the root object to be serialized.</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="root">
person.job
</param>
</result>
]]></script>
-</div></div>
-
-<p>The "root" attribute(OGNL expression) can also be used on the interceptor
to specify the object that must be populated, <strong>make sure this object is
not null</strong>. </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<interceptor-ref name="json">
+</div></div><p>The "root" attribute(OGNL expression) can also be used on the
interceptor to specify the object that must be populated, <strong>make sure
this object is not null</strong>.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<interceptor-ref name="json">
<param name="root">bean1.bean2</param>
</interceptor-ref>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Wrapping">Wrapping</h3>
-<p>For several reasons you might want to wrap the JSON output with some text,
like wrapping with comments, adding a prefix, or to use file uploads which
require the result to be wrapped in a textarea. Use <em>wrapPrefix</em> to add
content in the beginning and <em>wrapPostfix</em> to add content at the end.
This settings take precedence over "wrapWithComments" and "prefix" which are
deprecated from 0.34 on. Examples:<br clear="none">
-Wrap with comments:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-Wrapping">Wrapping</h3><p>For several reasons
you might want to wrap the JSON output with some text, like wrapping with
comments, adding a prefix, or to use file uploads which require the result to
be wrapped in a textarea. Use <em>wrapPrefix</em> to add content in the
beginning and <em>wrapPostfix</em> to add content at the end. This settings
take precedence over "wrapWithComments" and "prefix" which are deprecated from
0.34 on. Examples:<br clear="none"> Wrap with comments:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="wrapPrefix">/*</param>
<param name="wrapSuffix">*/</param>
</result>
]]></script>
-</div></div>
-<p>Add a prefix:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><p>Add a prefix:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="wrapPrefix">{}&&</param>
</result>
]]></script>
-</div></div>
-<p>Wrap for file upload:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><p>Wrap for file upload:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param
name="wrapPrefix"><![CDATA[<html><body><textarea>]]></param>
<param
name="wrapSuffix"><![CDATA[</textarea></body></html>]]></param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-WrapwithComments">Wrap with Comments </h3>
- <div class="aui-message problem shadowed information-macro">
+</div></div><h3 id="JSONPlugin-WrapwithComments">Wrap with Comments</h3>
<div class="aui-message problem shadowed information-macro">
<span class="aui-icon icon-problem">Icon</span>
<div class="message-content">
-
-<p><em>wrapWithComments</em> is deprecated from 0.34, use <em>wrapPrefix</em>
and <em>wrapSuffix</em> instead.</p>
+ <p><em>wrapWithComments</em> is deprecated from
0.34, use <em>wrapPrefix</em> and <em>wrapSuffix</em> instead.</p>
</div>
</div>
-
<div class="aui-message problem shadowed information-macro">
<span class="aui-icon icon-problem">Icon</span>
<div class="message-content">
-
-<p><em>wrapWithComments</em> can turn safe JSON text into dangerous text. For
example,</p>
-
-<p><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=%22*%2F+alert%28%27XSS%27%29%3B+%2F*%22&linkCreation=true&fromPageId=2850922">"*/
alert('XSS'); /*"</a> </p>
-
-<p>Thanks to Douglas Crockford for the tip!. Consider using
<strong>prefix</strong> instead.</p>
+ <p><em>wrapWithComments</em> can turn safe JSON
text into dangerous text. For example,</p><p><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=%22*%2F+alert%28%27XSS%27%29%3B+%2F*%22&linkCreation=true&fromPageId=2850922">"*/
alert('XSS'); /*"</a></p><p>Thanks to Douglas Crockford for the tip!. Consider
using <strong>prefix</strong> instead.</p>
</div>
</div>
-
-
-<p>If the serialized JSON is <em>{name: 'El Zorro'}</em>. Then the output will
be: <em>{}&& ({name: 'El Zorro'}</em></p>
-
-
-<p>If the "wrapWithComments" (false by default) attribute is set to true, the
generated JSON is wrapped with comments like:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-/* {
+<p>If the serialized JSON is <em>{name: 'El Zorro'}</em>. Then the output will
be: <em>{}&& ({name: 'El Zorro'}</em></p><p>If the "wrapWithComments"
(false by default) attribute is set to true, the generated JSON is wrapped with
comments like:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[/* {
"doubleVal": 10.10,
"nestedBean": {
"name": "Mr Bean"
@@ -338,63 +261,35 @@ Wrap with comments:</p>
"array": [10, 20]
} */
]]></script>
-</div></div>
-
-<p>To strip those comments use:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-var responseObject =
eval("("+data.substring(data.indexOf("\/\*")+2,
data.lastIndexOf("\*\/"))+")");
+</div></div><p>To strip those comments use:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[var responseObject =
eval("("+data.substring(data.indexOf("\/\*")+2,
data.lastIndexOf("\*\/"))+")");
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Prefix">Prefix</h3>
- <div class="aui-message problem shadowed information-macro">
+</div></div><h3 id="JSONPlugin-Prefix">Prefix</h3> <div class="aui-message
problem shadowed information-macro">
<span class="aui-icon icon-problem">Icon</span>
<div class="message-content">
-
-<p><em>prefix</em> is deprecated from 0.34, use <em>wrapPrefix</em> and
<em>wrapSuffix</em> instead.</p>
+ <p><em>prefix</em> is deprecated from 0.34, use
<em>wrapPrefix</em> and <em>wrapSuffix</em> instead.</p>
</div>
</div>
-
-<p>If the parameter <em>prefix</em> is set to true, the generated JSON will be
prefixed with "{}&& ". This will help prevent hijacking. See <a
shape="rect" class="external-link"
href="http://trac.dojotoolkit.org/ticket/6380" rel="nofollow">this Dojo
Ticket</a> for details:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+<p>If the parameter <em>prefix</em> is set to true, the generated JSON will be
prefixed with "{}&& ". This will help prevent hijacking. See <a
shape="rect" class="external-link"
href="http://trac.dojotoolkit.org/ticket/6380" rel="nofollow">this Dojo
Ticket</a> for details:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="prefix">true</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-BaseClasses">Base Classes</h3>
-<p>By default properties defined on base classes of the "root" object won't be
serialized, to serialize properties in all base classes (up to Object) set
"ignoreHierarchy" to false in the JSON result:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-BaseClasses">Base Classes</h3><p>By default
properties defined on base classes of the "root" object won't be serialized, to
serialize properties in all base classes (up to Object) set "ignoreHierarchy"
to false in the JSON result:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="ignoreHierarchy">false</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Enumerations">Enumerations</h3>
-<p>By default, an Enum is serialized as a name=value pair where value =
name().</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- public enum AnEnum {
+</div></div><h3 id="JSONPlugin-Enumerations">Enumerations</h3><p>By default,
an Enum is serialized as a name=value pair where value = name().</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ public enum AnEnum {
ValueA,
ValueB
}
JSON: "myEnum":"ValueA"
]]></script>
-</div></div>
-
-<p>Use the "enumAsBean" result parameter to serialize Enum's as a bean with a
special property _name with value name(). All properties of the enum are also
serialized.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- public enum AnEnum {
+</div></div><p>Use the "enumAsBean" result parameter to serialize Enum's as a
bean with a special property _name with value name(). All properties of the
enum are also serialized.</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ public enum AnEnum {
ValueA("A"),
ValueB("B");
@@ -410,114 +305,53 @@ var responseObject = eval("("+
JSON: myEnum: { "_name": "ValueA", "val":
"A" }
]]></script>
-</div></div>
-
-<p>Enable this parameter through struts.xml:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><p>Enable this parameter through struts.xml:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="enumAsBean">true</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Compressingtheoutput.">Compressing the output. </h3>
-<p>Set the <em>enableGZIP</em> attribute to true to gzip the generated json
response. The request <strong>must</strong> include "gzip" in the
"Accept-Encoding" header for this to work.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-Compressingtheoutput.">Compressing the
output.</h3><p>Set the <em>enableGZIP</em> attribute to true to gzip the
generated json response. The request <strong>must</strong> include "gzip" in
the "Accept-Encoding" header for this to work.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="enableGZIP">true</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Preventingthebrowserfromcachingtheresponse">Preventing the
browser from caching the response</h3>
-<p>Set <em>noCache</em> to true(false by default) to set the following headers
in the response:</p>
-<ul><li>Cache-Control: no-cache</li><li>Expires: 0</li><li>Pragma:
No-cache</li></ul>
-
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3
id="JSONPlugin-Preventingthebrowserfromcachingtheresponse">Preventing the
browser from caching the response</h3><p>Set <em>noCache</em> to true(false by
default) to set the following headers in the
response:</p><ul><li>Cache-Control: no-cache</li><li>Expires: 0</li><li>Pragma:
No-cache</li></ul><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="noCache">true</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Excludingpropertieswithnullvalues">Excluding properties
with null values</h3>
-<p>By default fields with null values are serialized like {property_name:
null}. This can be prevented by setting <em>excludeNullProperties</em> to
true.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-Excludingpropertieswithnullvalues">Excluding
properties with null values</h3><p>By default fields with null values are
serialized like {property_name: null}. This can be prevented by setting
<em>excludeNullProperties</em> to true.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="excludeNullProperties">true</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-StatusandErrorcode">Status and Error code</h3>
-<p>Use <em>statusCode</em> to set the status of the response:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-StatusandErrorcode">Status and Error
code</h3><p>Use <em>statusCode</em> to set the status of the response:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="statusCode">304</param>
</result>
]]></script>
-</div></div>
-
-<p>And <em>errorCode</em> to send an error(the server might end up sending
something to the client which is not the serialized JSON):</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><p>And <em>errorCode</em> to send an error(the server might end up
sending something to the client which is not the serialized JSON):</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="errorCode">404</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-JSONP">JSONP</h3>
-<p>To enable JSONP, set the parameter <em>callbackParameter</em> in either the
JSON Result or the Interceptor. A parameter with that name will be read from
the request, and it value will be used as the JSONP function. Assuming that a
request is made with the parameter "callback"="exec":</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-JSONP">JSONP</h3><p>To enable JSONP, set the
parameter <em>callbackParameter</em> in either the JSON Result or the
Interceptor. A parameter with that name will be read from the request, and it
value will be used as the JSONP function. Assuming that a request is made with
the parameter "callback"="exec":</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="callbackParameter">callback</param>
</result>
]]></script>
-</div></div>
-
-<p>And that the serialized JSON is <em>{name: 'El Zorro'}</em>. Then the
output will be: <em>exec({name: 'El Zorro'})</em></p>
-
-<h3 id="JSONPlugin-ContentType">Content Type</h3>
-<p>Content type will be set to <em>application/json-rpc</em> by default if SMD
is being used, or <em>application/json</em> otherwise. Sometimes it is
necessary to set the content type to something else, like when uploading files
with Dojo and YUI. Use the <em>contentType</em> parameter in those cases.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><p>And that the serialized JSON is <em>{name: 'El Zorro'}</em>.
Then the output will be: <em>exec({name: 'El Zorro'})</em></p><h3
id="JSONPlugin-ContentType">Content Type</h3><p>Content type will be set to
<em>application/json-rpc</em> by default if SMD is being used, or
<em>application/json</em> otherwise. Sometimes it is necessary to set the
content type to something else, like when uploading files with Dojo and YUI.
Use the <em>contentType</em> parameter in those cases.</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="contentType">text/html</param>
</result>
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Encoding">Encoding</h3>
-
-<p>User can define encoding per result or base on default assigned to
struts.i18n.encoding. To define encoding for given result add encoding param as
below:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<result type="json">
+</div></div><h3 id="JSONPlugin-Encoding">Encoding</h3><p>User can define
encoding per result or base on default assigned to struts.i18n.encoding. To
define encoding for given result add encoding param as below:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<result type="json">
<param name="encoding">UTF-8</param>
</result>
]]></script>
-</div></div>
-
-<h2 id="JSONPlugin-Example">Example</h2>
-
-<h3 id="JSONPlugin-SetupAction">Setup Action</h3>
-<p>This simple action has some fields:</p>
-
-<p>Example:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-import java.util.HashMap;
+</div></div><h2 id="JSONPlugin-Example">Example</h2><h3
id="JSONPlugin-SetupAction">Setup Action</h3><p>This simple action has some
fields:</p><p>Example:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.Action;
@@ -569,16 +403,8 @@ public class JSONExample {
}
}
]]></script>
-</div></div>
-
-<h3 id="JSONPlugin-Writethemappingfortheaction">Write the mapping for the
action</h3>
-<ol><li>Add the map inside a package that extends "json-default"</li><li>Add a
result of type "json"</li></ol>
-
-
-<p>Example with Convention Plugin Configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-import java.util.HashMap;
+</div></div><h3 id="JSONPlugin-Writethemappingfortheaction">Write the mapping
for the action</h3><ol><li>Add the map inside a package that extends
"json-default"</li><li>Add a result of type "json"</li></ol><p>Example with
Convention Plugin Configuration:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[import java.util.HashMap;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
@@ -589,12 +415,8 @@ public class JSONExample extends ActionS
// action code
}
]]></script>
-</div></div>
-
-<p>Example with XML Configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<?xml version="1.0" encoding="UTF-8" ?>
+</div></div><p>Example with XML Configuration:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<?xml version="1.0"
encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
@@ -609,12 +431,8 @@ public class JSONExample extends ActionS
</struts>
]]></script>
-</div></div>
-
-<h4 id="JSONPlugin-JSONexampleoutput">JSON example output</h4>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-{
+</div></div><h4 id="JSONPlugin-JSONexampleoutput">JSON example output</h4><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[{
"field1" : "str",
"ints": [10, 20],
"map": {
@@ -623,16 +441,8 @@ public class JSONExample extends ActionS
"newName": "custom"
}
]]></script>
-</div></div>
-
-<h2 id="JSONPlugin-JSONRPC">JSON RPC</h2>
-<p>The json plugin can be used to execute action methods from javascript and
return the output. This feature was developed with Dojo in mind, so it uses <a
shape="rect" class="external-link"
href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book9"
rel="nofollow">Simple Method Definition</a> to advertise the remote service.
Let's work it out with an example(useless as most examples).</p>
-
-<p>First write the action:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-package smd;
+</div></div><h2 id="JSONPlugin-JSONRPC">JSON RPC</h2><p>The json plugin can be
used to execute action methods from javascript and return the output. This
feature was developed with Dojo in mind, so it uses <a shape="rect"
class="external-link"
href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book9"
rel="nofollow">Simple Method Definition</a> to advertise the remote service.
Let's work it out with an example(useless as most examples).</p><p>First write
the action:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[package smd;
import com.googlecode.jsonplugin.annotations.SMDMethod;
import com.opensymphony.xwork2.Action;
@@ -649,15 +459,8 @@ public class SMDAction {
}
}
]]></script>
-</div></div>
-
-<p>Methods that will be called remotely <strong>must</strong> be annotated
with the <em>SMDMethod</em> annotation, for security reasons. The method will
take a bean object, modify its price and return it. The action can be annotated
with the <em>SMD</em> annotation to customize the generated SMD (more on that
soon), and parameters can be annotated with <em>SMDMethodParameter</em>. As you
can see, we have a "dummy", <em>smd</em> method. This method will be used to
generate the Simple Method Definition (a definition of all the services
provided by this class), using the "json" result.</p>
-
-<p>The bean class:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-package smd;
+</div></div><p>Methods that will be called remotely <strong>must</strong> be
annotated with the <em>SMDMethod</em> annotation, for security reasons. The
method will take a bean object, modify its price and return it. The action can
be annotated with the <em>SMD</em> annotation to customize the generated SMD
(more on that soon), and parameters can be annotated with
<em>SMDMethodParameter</em>. As you can see, we have a "dummy", <em>smd</em>
method. This method will be used to generate the Simple Method Definition (a
definition of all the services provided by this class), using the "json"
result.</p><p>The bean class:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[package smd;
public class Bean {
private String type;
@@ -681,13 +484,8 @@ public class Bean {
}
]]></script>
-</div></div>
-
-<p>The mapping:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<package name="RPC" namespace="/nodecorate"
extends="json-default">
+</div></div><p>The mapping:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[<package name="RPC"
namespace="/nodecorate" extends="json-default">
<action name="SMDAction" class="smd.SMDAction"
method="smd">
<interceptor-ref name="json">
<param name="enableSMD">true</param>
@@ -698,15 +496,8 @@ public class Bean {
</action>
</package>
]]></script>
-</div></div>
-
-<p>Nothing special here, except that <strong>both</strong> the interceptor and
the result must be applied to the action, and "enableSMD" must be enabled for
both.</p>
-
-<p>Now the javascript code:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<s:url id="smdUrl" namespace="/nodecorate"
action="SMDAction" />
+</div></div><p>Nothing special here, except that <strong>both</strong> the
interceptor and the result must be applied to the action, and "enableSMD" must
be enabled for both.</p><p>Now the javascript code:</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<s:url id="smdUrl"
namespace="/nodecorate" action="SMDAction" />
<script type="text/javascript">
//load dojo RPC
dojo.require("dojo.rpc.*");
@@ -729,22 +520,8 @@ public class Bean {
defered.addCallback(callback);
</script>
]]></script>
-</div></div>
-
-<p>Dojo's JsonService will make a request to the action to load the SMD, which
will return a JSON object with the definition of the available remote methods,
using that information Dojo creates a "proxy" for those methods. Because of the
asynchronous nature of the request, when the method is executed, a deferred
object is returned, to which a callback function can be attached. The callback
function will receive as a parameter the object returned from your action.
That's it.</p>
-
-<h2 id="JSONPlugin-Proxiedobjects">Proxied objects</h2>
-<p>As annotations are not inherited in Java, some user might experience
problems while trying to serialize objects that are proxied. eg. when you have
attached AOP interceptors to your action. </p>
-
-<p>In this situation, the plugin will not detect the annotations on methods in
your action.</p>
-
-<p>To overcome this, set the "ignoreInterfaces" result parameter to false
(true by default) to request that the plugin inspects all interfaces and
superclasses of the action for annotations on the action's methods. </p>
-
-<p>NOTE: This parameter should only be set to false if your action could be a
proxy as there is a performance cost caused by recursion through the
interfaces. </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
-<action name="contact" class="package.ContactAction"
method="smd">
+</div></div><p>Dojo's JsonService will make a request to the action to load
the SMD, which will return a JSON object with the definition of the available
remote methods, using that information Dojo creates a "proxy" for those
methods. Because of the asynchronous nature of the request, when the method is
executed, a deferred object is returned, to which a callback function can be
attached. The callback function will receive as a parameter the object returned
from your action. That's it.</p><h2 id="JSONPlugin-Proxiedobjects">Proxied
objects</h2><p>As annotations are not inherited in Java, some user might
experience problems while trying to serialize objects that are proxied. eg.
when you have attached AOP interceptors to your action.</p><p>In this
situation, the plugin will not detect the annotations on methods in your
action.</p><p>To overcome this, set the "ignoreInterfaces" result parameter to
false (true by default) to request that the plugin inspects all interfaces and
superclass
es of the action for annotations on the action's methods.</p><p>NOTE: This
parameter should only be set to false if your action could be a proxy as there
is a performance cost caused by recursion through the interfaces.</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<action name="contact"
class="package.ContactAction" method="smd">
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param
name="ignoreSMDMethodInterfaces">false</param>
Modified: websites/production/struts/content/docs/label.html
==============================================================================
--- websites/production/struts/content/docs/label.html (original)
+++ websites/production/struts/content/docs/label.html Wed Dec 31 13:40:50 2014
@@ -153,7 +153,7 @@ the rest of your UI controls.</p>
<h2 id="label-Parameters">Parameters</h2>
-<p><table width="100%"><tr><td colspan="6" rowspan="1"><h4>Dynamic Attributes
Allowed:</h4> true</td></tr><tr><td colspan="6"
rowspan="1"> </td></tr><tr><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Name</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Required</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Default</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Evaluated</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Type</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Description</h4></th></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">accesskey</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set t
he html accesskey attribute on rendered html element</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">cssClass</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css class to use for element</td></tr><tr><td align="left"
colspan="1" rowspan="1" valign="top">cssErrorClass</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css error class to use for element</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">cssErrorStyle</td><td align=
"left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css error style definitions for element to
use</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">cssStyle</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css style definitions for element to use</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">disabled</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html disabled attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">errorPosition</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Define error position of form element
(top|bottom)</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">for</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td
align="left" colspan="1" rowspan="1" valign="top"> HTML for
attribute</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">id</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">HTML id attribute</td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">javascriptTooltip</td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1"
valign="top">Use JavaScript to generate tooltips</td></tr><tr><td align="left"
colspan="1" rowspan="1" valign="top">key</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the key (name, value, label) for this particular
component</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">label</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Label expression used for rendering an element specific
label</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">labelSeparator</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="t
op">:</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td
align="left" colspan="1" rowspan="1" valign="top">String</td><td align="left"
colspan="1" rowspan="1" valign="top">String that will be appended to the
label</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">labelposition</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Define label position of form element (top/left)</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">name</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">Strin
g</td><td align="left" colspan="1" rowspan="1" valign="top">The name to set
for element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onblur</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1" valign="top">
Set the html onblur attribute on rendered html element</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">onchange</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onchange attribute on rendered html
element</td></tr><tr><td align="le
ft" colspan="1" rowspan="1" valign="top">onclick</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onclick attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">ondblclick</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html ondblclick attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onfocus</td><td align="left" colspan="1" rowspan="1"
valign="top">fa
lse</td><td align="left" colspan="1" rowspan="1" valign="top"></td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" valign="top">String</td><td align="left" colspan="1"
rowspan="1" valign="top">Set the html onfocus attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onkeydown</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onkeydown attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onkeypress</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onkeypress attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onkeyup</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onkeyup attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmousedown</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" col
span="1" rowspan="1" valign="top">Set the html onmousedown attribute on
rendered html element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmousemove</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmousemove attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmouseout</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmouseout attribute on rendered html element</td></t
r><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmouseover</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmouseover attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmouseup</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmouseup attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onselect</td><td align="left" colspan="1" r
owspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onselect attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">requiredLabel</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1"
valign="top">If set to true, the rendered element will indicate that input is
required</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">requiredPosition</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Define required position of required form element
(left|right)</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">tabindex</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html tabindex attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">template</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspa
n="1" rowspan="1" valign="top">String</td><td align="left" colspan="1"
rowspan="1" valign="top">The template (other than default) to use for rendering
the element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">templateDir</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The template directory.</td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">theme</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The theme (other than default) to use
for rendering the element</td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">title</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html title attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">tooltip</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the tooltip of this particular component</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">tooltipConfig</td><td
align="left" co
lspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Deprecated. Use individual tooltip configuration attributes
instead.</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">tooltipCssClass</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">StrutsTTClassic</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">CSS class applied to JavaScrip tooltips</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">tooltipDelay</td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" vali
gn="top">Classic</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Delay in milliseconds, before showing JavaScript tooltips
</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">tooltipIconPath</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Icon path used for image that will have the
tooltip</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">value</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan=
"1" rowspan="1" valign="top">String</td><td align="left" colspan="1"
rowspan="1" valign="top">Preset the value of input
element.</td></tr></table></p>
+<p><table width="100%"><tr><td colspan="6" rowspan="1"><h4>Dynamic Attributes
Allowed:</h4> true</td></tr><tr><td colspan="6"
rowspan="1"> </td></tr><tr><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Name</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Required</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Default</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Evaluated</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Type</h4></th><th align="left" colspan="1" rowspan="1"
valign="top"><h4>Description</h4></th></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">accesskey</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set t
he html accesskey attribute on rendered html element</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">class</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css class to use for element - it's an alias of cssClass
attribute.</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">cssClass</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css class to use for element</td></tr><tr><td align="left"
colspan="1" rowspan="1" valign="top">css
ErrorClass</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css error class to use for element</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">cssErrorStyle</td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The css error style definitions for element to
use</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">cssStyle</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="to
p"></td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td
align="left" colspan="1" rowspan="1" valign="top">String</td><td align="left"
colspan="1" rowspan="1" valign="top">The css style definitions for element to
use</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">disabled</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html disabled attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">errorPosition</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1" valig
n="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Define error position of form element
(top|bottom)</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">for</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1" valign="top">
HTML for attribute</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">id</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">HTML id attribute</td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">javascr
iptTooltip</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1"
valign="top">Use JavaScript to generate tooltips</td></tr><tr><td align="left"
colspan="1" rowspan="1" valign="top">key</td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the key (name, value, label) for this particular
component</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">label</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="
top"></td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td
align="left" colspan="1" rowspan="1" valign="top">String</td><td align="left"
colspan="1" rowspan="1" valign="top">Label expression used for rendering an
element specific label</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">labelSeparator</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">:</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">String that will be appended to the label</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">labelposition</td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspa
n="1" valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Define label position of form element (top/left)</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">name</td><td align="left"
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The name to set for element</td></tr><tr><td align="left"
colspan="1" rowspan="1" valign="top">onblur</td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1" valign="top">
Set the html onblur attribute on rendered html element</td></tr><tr><
td align="left" colspan="1" rowspan="1" valign="top">onchange</td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onchange attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onclick</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onclick attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">ondblclick</td><td align="left" colspan="1" rowspan="1" vali
gn="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html ondblclick attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onfocus</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onfocus attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onkeydown</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" row
span="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onkeydown attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onkeypress</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onkeypress attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onkeyup</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align=
"left" colspan="1" rowspan="1" valign="top">Set the html onkeyup attribute on
rendered html element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmousedown</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmousedown attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmousemove</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmousemove attribute on rendered html element
</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmouseout</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmouseout attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmouseover</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmouseover attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onmouseup</td><td align="left" co
lspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1"
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onmouseup attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">onselect</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html onselect attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">requiredLabel</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">false<
/td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td
align="left" colspan="1" rowspan="1" valign="top">Boolean</td><td align="left"
colspan="1" rowspan="1" valign="top">If set to true, the rendered element will
indicate that input is required</td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">requiredPosition</td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Define required position of required form element
(left|right)</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">style</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="lef
t" colspan="1" rowspan="1" valign="top">String</td><td align="left"
colspan="1" rowspan="1" valign="top">The css style definitions for element to
use - it's an alias of cssStyle attribute.</td></tr><tr><td align="left"
colspan="1" rowspan="1" valign="top">tabindex</td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html tabindex attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">template</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rows
pan="1" valign="top">The template (other than default) to use for rendering
the element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">templateDir</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The template directory.</td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">theme</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">The theme (other than default) to use for rendering the
element</td></tr><tr><td align="left" colspan="1" rowspan
="1" valign="top">title</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the html title attribute on rendered html
element</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">tooltip</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Set the tooltip of this particular component</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">tooltipConfig</td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" r
owspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Deprecated. Use individual tooltip configuration attributes
instead.</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">tooltipCssClass</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">StrutsTTClassic</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">CSS class applied to JavaScrip tooltips</td></tr><tr><td
align="left" colspan="1" rowspan="1" valign="top">tooltipDelay</td><td
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left"
colspan="1" rowspan="1" valign="top">Classic</td><td align="left" colspan="1"
rowspan="1" valign="top">
false</td><td align="left" colspan="1" rowspan="1" valign="top">String</td><td
align="left" colspan="1" rowspan="1" valign="top">Delay in milliseconds, before
showing JavaScript tooltips </td></tr><tr><td align="left" colspan="1"
rowspan="1" valign="top">tooltipIconPath</td><td align="left" colspan="1"
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspan="1"
valign="top">Icon path used for image that will have the
tooltip</td></tr><tr><td align="left" colspan="1" rowspan="1"
valign="top">value</td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top"></td><td align="left" colspan="1" rowspan="1"
valign="top">false</td><td align="left" colspan="1" rowspan="1"
valign="top">String</td><td align="left" colspan="1" rowspa
n="1" valign="top">Preset the value of input element.</td></tr></table></p>
<h2 id="label-Examples">Examples</h2>