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[{
    &quot;doubleValue&quot;: 10.10,
    &quot;nestedBean&quot;: {
       &quot;name&quot;: &quot;Mr Bean&quot;
@@ -158,27 +150,20 @@ under the License.
    &quot;array&quot;: [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" -&gt; "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" -&gt; "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[
-&lt;dependencies&gt;
+    <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[&lt;dependencies&gt;
    ...
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;
@@ -188,20 +173,8 @@ under the License.
    ...
 &lt;/dependencies&gt;
 ]]></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[
-&lt;!-- Result fragment --&gt;
+</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[&lt;!-- Result fragment --&gt;
 &lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;excludeProperties&quot;&gt;
     login.password,
@@ -218,24 +191,15 @@ under the License.
   &lt;/param&gt;
 &lt;/interceptor-ref&gt;
 ]]></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[
-&lt;!-- Result fragment --&gt;
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;!-- Result fragment --&gt;
 &lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;includeProperties&quot;&gt;
     ^entries\[\d+\]\.clientNumber,
@@ -244,90 +208,49 @@ under the License.
   &lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;root&quot;&gt;
     person.job
   &lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;interceptor-ref name=&quot;json&quot;&gt;
+</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[&lt;interceptor-ref name=&quot;json&quot;&gt;
   &lt;param name=&quot;root&quot;&gt;bean1.bean2&lt;/param&gt;
 &lt;/interceptor-ref&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;wrapPrefix&quot;&gt;/*&lt;/param&gt;
   &lt;param name=&quot;wrapSuffix&quot;&gt;*/&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;wrapPrefix&quot;&gt;{}&amp;&amp;&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param 
name=&quot;wrapPrefix&quot;&gt;&lt;![CDATA[&lt;html&gt;&lt;body&gt;&lt;textarea&gt;]]&gt;&lt;/param&gt;
   &lt;param 
name=&quot;wrapSuffix&quot;&gt;&lt;![CDATA[&lt;/textarea&gt;&lt;/body&gt;&lt;/html&gt;]]&gt;&lt;/param&gt;
 &lt;/result&gt;
 ]]></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&amp;title=%22*%2F+alert%28%27XSS%27%29%3B+%2F*%22&amp;linkCreation=true&amp;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&amp;title=%22*%2F+alert%28%27XSS%27%29%3B+%2F*%22&amp;linkCreation=true&amp;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>{}&amp;&amp; ({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>{}&amp;&amp; ({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[/* {
    &quot;doubleVal&quot;: 10.10,
    &quot;nestedBean&quot;: {
       &quot;name&quot;: &quot;Mr Bean&quot;
@@ -338,63 +261,35 @@ Wrap with comments:</p>
    &quot;array&quot;: [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(&quot;(&quot;+data.substring(data.indexOf(&quot;\/\*&quot;)+2, 
data.lastIndexOf(&quot;\*\/&quot;))+&quot;)&quot;);
+</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(&quot;(&quot;+data.substring(data.indexOf(&quot;\/\*&quot;)+2, 
data.lastIndexOf(&quot;\*\/&quot;))+&quot;)&quot;);
 ]]></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 "{}&amp;&amp; ". 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[
-&lt;result type=&quot;json&quot;&gt;
+<p>If the parameter <em>prefix</em> is set to true, the generated JSON will be 
prefixed with "{}&amp;&amp; ". 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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;prefix&quot;&gt;true&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;ignoreHierarchy&quot;&gt;false&lt;/param&gt;
 &lt;/result&gt;
 ]]></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:  &quot;myEnum&quot;:&quot;ValueA&quot;
 ]]></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(&quot;A&quot;),
      ValueB(&quot;B&quot;);
 
@@ -410,114 +305,53 @@ var responseObject = eval(&quot;(&quot;+
 
   JSON:  myEnum: { &quot;_name&quot;: &quot;ValueA&quot;, &quot;val&quot;: 
&quot;A&quot; }
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;enumAsBean&quot;&gt;true&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;enableGZIP&quot;&gt;true&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;noCache&quot;&gt;true&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;excludeNullProperties&quot;&gt;true&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;statusCode&quot;&gt;304&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;errorCode&quot;&gt;404&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;callbackParameter&quot;&gt;callback&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;contentType&quot;&gt;text/html&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;result type=&quot;json&quot;&gt;
+</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[&lt;result type=&quot;json&quot;&gt;
   &lt;param name=&quot;encoding&quot;&gt;UTF-8&lt;/param&gt;
 &lt;/result&gt;
 ]]></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[
-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
+</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[&lt;?xml version=&quot;1.0&quot; 
encoding=&quot;UTF-8&quot; ?&gt;
 &lt;!DOCTYPE struts PUBLIC
     &quot;-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quot;
     &quot;http://struts.apache.org/dtds/struts-2.0.dtd&quot;&gt;
@@ -609,12 +431,8 @@ public class JSONExample extends ActionS
 
 &lt;/struts&gt;
 ]]></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[{  
    &quot;field1&quot; : &quot;str&quot;, 
    &quot;ints&quot;: [10, 20],
    &quot;map&quot;: {
@@ -623,16 +441,8 @@ public class JSONExample extends ActionS
    &quot;newName&quot;: &quot;custom&quot;
 }
 ]]></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[
-&lt;package name=&quot;RPC&quot; namespace=&quot;/nodecorate&quot; 
extends=&quot;json-default&quot;&gt;
+</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[&lt;package name=&quot;RPC&quot; 
namespace=&quot;/nodecorate&quot; extends=&quot;json-default&quot;&gt;
     &lt;action name=&quot;SMDAction&quot; class=&quot;smd.SMDAction&quot; 
method=&quot;smd&quot;&gt;
         &lt;interceptor-ref name=&quot;json&quot;&gt;
             &lt;param name=&quot;enableSMD&quot;&gt;true&lt;/param&gt;
@@ -698,15 +496,8 @@ public class Bean {
     &lt;/action&gt;
 &lt;/package&gt;
 ]]></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[
-&lt;s:url id=&quot;smdUrl&quot; namespace=&quot;/nodecorate&quot; 
action=&quot;SMDAction&quot; /&gt;
+</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[&lt;s:url id=&quot;smdUrl&quot; 
namespace=&quot;/nodecorate&quot; action=&quot;SMDAction&quot; /&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
     //load dojo RPC
     dojo.require(&quot;dojo.rpc.*&quot;);
@@ -729,22 +520,8 @@ public class Bean {
     defered.addCallback(callback);
 &lt;/script&gt;
 ]]></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[
-&lt;action name=&quot;contact&quot; class=&quot;package.ContactAction&quot; 
method=&quot;smd&quot;&gt;
+</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[&lt;action name=&quot;contact&quot; 
class=&quot;package.ContactAction&quot; method=&quot;smd&quot;&gt;
    &lt;interceptor-ref name=&quot;json&quot;&gt;
       &lt;param name=&quot;enableSMD&quot;&gt;true&lt;/param&gt;
       &lt;param 
name=&quot;ignoreSMDMethodInterfaces&quot;&gt;false&lt;/param&gt;

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">&#160;</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">&#160;</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>
 


Reply via email to