You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/04/26 20:40:46 UTC

svn commit: r906991 [6/17] - /websites/production/struts/content/release/2.3.x/docs/

Modified: websites/production/struts/content/release/2.3.x/docs/form-tags.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/form-tags.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/form-tags.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
@@ -140,112 +139,47 @@ under the License. 
             <div id="ConfluenceContent">    <div class="aui-message warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
-                            
-<p>Please make sure you have read the <a shape="rect" href="tag-syntax.html">Tag Syntax</a> document and understand how tag attribute syntax works.</p>
+                            <p>Please make sure you have read the <a shape="rect" href="tag-syntax.html">Tag Syntax</a> document and understand how tag attribute syntax works.</p>
                     </div>
     </div>
-
-<p>Within the form tags, there are two classes of tags: the form tag itself, and all other tags, which make up the individual form elements. The behavior of the form tag is different than the elements enclosed within it.</p>
-
-<h2 id="FormTags-FormTagThemes">Form Tag Themes</h2>
-
-<p>As explained in <a shape="rect" href="themes-and-templates.html">Themes and Templates</a>, the HTML Tags (which includes Form Tags) are all driven by templates. Templates are grouped together to create themes. The framework bundles three themes in the distribution.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> simple </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Sometimes <em>too</em> simple </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> xhtml </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Extends simple </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> (default) </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> ajax </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Extends xhtml </p></td></tr></tbody></table></div>
-
-<p>The predefined themes can be used "as is" or customized.</p>
-    <div class="aui-message success shadowed information-macro">
+<p>Within the form tags, there are two classes of tags: the form tag itself, and all other tags, which make up the individual form elements. The behavior of the form tag is different than the elements enclosed within it.</p><h2 id="FormTags-FormTagThemes">Form Tag Themes</h2><p>As explained in <a shape="rect" href="themes-and-templates.html">Themes and Templates</a>, the HTML Tags (which includes Form Tags) are all driven by templates. Templates are grouped together to create themes. The framework bundles three themes in the distribution.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>simple</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Sometimes <em>too</em> simple</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>xhtml</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Extends simple</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(default)</p></td></tr><
 tr><th colspan="1" rowspan="1" class="confluenceTh"><p>ajax</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Extends xhtml</p></td></tr></tbody></table></div><p>The predefined themes can be used "as is" or customized.</p>    <div class="aui-message success shadowed information-macro">
                     <p class="title">xhtml layout</p>
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>The xhtml theme renders out a two-column table. If a different layout is needed, do <em>not</em> write your own HTML. Create a new theme or utilize the simple theme.</p>
+                            <p>The xhtml theme renders out a two-column table. If a different layout is needed, do <em>not</em> write your own HTML. Create a new theme or utilize the simple theme.</p>
                     </div>
     </div>
-
-
-<h3 id="FormTags-Simplethemecaveats">Simple theme caveats</h3>
-
-<p>The downside of using the simple theme is that it doesn't support as many of the attributes that the other themes do. For example, the <code>label</code> attribute does nothing in the simple theme, and the automatic display of error messages is not supported.</p>
-
-<h2 id="FormTags-CommonAttributes">Common Attributes</h2>
-
-<p>All the form tags extend the UIBean class. This base class provides a set of common attributes, that can be grouped in to three categories: <code>templated-related</code>, javascript-related, and general attributes. The individual attributes are documented on each tag's reference page.</p>
-
-<p>In addition to the common attributes, a special attribute exists for all form element tags: <code>form</code> (${parameters.form}). The <code>form</code> property represents the attributes used to render the form tag, such as the form's id. In a template, the form's ID can be found by calling ${parameters.form.id}.</p>
-
-<h2 id="FormTags-Template-RelatedAttributes">Template-Related Attributes</h2>
-
-
+<h3 id="FormTags-Simplethemecaveats">Simple theme caveats</h3><p>The downside of using the simple theme is that it doesn't support as many of the attributes that the other themes do. For example, the <code>label</code> attribute does nothing in the simple theme, and the automatic display of error messages is not supported.</p><h2 id="FormTags-CommonAttributes">Common Attributes</h2><p>All the form tags extend the UIBean class. This base class provides a set of common attributes, that can be grouped in to three categories: <code>templated-related</code>, javascript-related, and general attributes. The individual attributes are documented on each tag's reference page.</p><p>In addition to the common attributes, a special attribute exists for all form element tags: <code>form</code> (${parameters.form}). The <code>form</code> property represents the attributes used to render the form tag, such as the form's id. In a template, the form's ID can be found by calling ${parameters.form.id}.
 </p><h2 id="FormTags-Template-RelatedAttributes">Template-Related Attributes</h2>
 <p><table border="1"><thead><tr><td colspan="1" rowspan="1">Attribute</td><td colspan="1" rowspan="1">Theme</td><td colspan="1" rowspan="1">Data Types</td><td colspan="1" rowspan="1">Description</td></tr></thead><tbody><tr><td colspan="1" rowspan="1">templateDir</td><td colspan="1" rowspan="1">n/a</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define the template directory</td></tr><tr><td colspan="1" rowspan="1">theme</td><td colspan="1" rowspan="1">n/a</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define the theme name</td></tr><tr><td colspan="1" rowspan="1">template</td><td colspan="1" rowspan="1">n/a</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define the template name</td></tr><tr><td colspan="1" rowspan="1">themeExpansionToken</td><td colspan="1" rowspan="1">n/a</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">special token (defined with struts.ui.theme.expansion.token) used to se
 arch for template in parent theme
          (don't use it separately!)</td></tr><tr><td colspan="1" rowspan="1">expandTheme</td><td colspan="1" rowspan="1">n/a</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">concatenation of themeExpansionToken and theme which tells internal template loader mechanism
          to try load template from current theme and then from parent theme (and parent theme, and so on)
          when used with &lt;#include/&gt; directive</td></tr></tbody></table></p>
-
-
 <h2 id="FormTags-Javascript-RelatedAttributes">Javascript-Related Attributes</h2>
-
-
 <p><table border="1"><thead><tr><td colspan="1" rowspan="1">Attribute</td><td colspan="1" rowspan="1">Theme</td><td colspan="1" rowspan="1">Data Types</td><td colspan="1" rowspan="1">Description</td></tr></thead><tbody><tr><td colspan="1" rowspan="1">onclick</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onclick attribute</td></tr><tr><td colspan="1" rowspan="1">ondblclick</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript ondbclick attribute</td></tr><tr><td colspan="1" rowspan="1">onmousedown</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onmousedown attribute</td></tr><tr><td colspan="1" rowspan="1">onmouseup</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onmouseup attribut
 e</td></tr><tr><td colspan="1" rowspan="1">onmouseover</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onmouseover attribute</td></tr><tr><td colspan="1" rowspan="1">onmouseout</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onmouseout attribute</td></tr><tr><td colspan="1" rowspan="1">onfocus</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onfocus attribute</td></tr><tr><td colspan="1" rowspan="1">onblur</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onblur attribute</td></tr><tr><td colspan="1" rowspan="1">onkeypress</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onkeypress attribute</td></tr><tr
 ><td colspan="1" rowspan="1">onkeyup</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onkeyup attribute</td></tr><tr><td colspan="1" rowspan="1">onkeydown</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onkeydown attribute</td></tr><tr><td colspan="1" rowspan="1">onselect</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onselect attribute</td></tr><tr><td colspan="1" rowspan="1">onchange</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">html javascript onchange attribute</td></tr></tbody></table></p>
-
-
 <h2 id="FormTags-TooltipRelatedAttributes">Tooltip Related Attributes</h2>
-
-
 <p><table border="1"><tr><td colspan="1" rowspan="1">Attribute</td><td colspan="1" rowspan="1">Data Type</td><td colspan="1" rowspan="1">Default</td><td colspan="1" rowspan="1">Description</td></tr><tr><td colspan="1" rowspan="1">tooltip</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">none</td><td colspan="1" rowspan="1">Set the tooltip of this particular component</td></tr><tr><td colspan="1" rowspan="1">jsTooltipEnabled</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">false</td><td colspan="1" rowspan="1">Enable js tooltip rendering</td></tr><tr><td colspan="1" rowspan="1">tooltipIcon</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">/struts/static/tooltip/tooltip.gif</td><td colspan="1" rowspan="1">The url to the tooltip icon</td></tr><tr><td colspan="1" rowspan="1">tooltipDelay</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">500</td><td colspan="1" rowspan="1">Tooltip shows up after the spec
 ified timeout (miliseconds). A behavior similar to that of OS based tooltips.</td></tr><tr><td colspan="1" rowspan="1">key</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">The name of the property this input field represents.  This will auto populate the name, label, and value</td></tr></table></p>
-
-
 <h2 id="FormTags-GeneralAttributes">General Attributes</h2>
-
-
 <p><table border="1"><thead><tr><td colspan="1" rowspan="1">Attribute</td><td colspan="1" rowspan="1">Theme</td><td colspan="1" rowspan="1">Data Types</td><td colspan="1" rowspan="1">Description</td></tr></thead><tbody><tr><td colspan="1" rowspan="1">cssClass</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define html class attribute</td></tr><tr><td colspan="1" rowspan="1">cssStyle</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define html style attribute</td></tr><tr><td colspan="1" rowspan="1">cssClass</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">error class attribute</td></tr><tr><td colspan="1" rowspan="1">cssStyle</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">error style attribute</td></tr><tr><td colspan="1" rowspan="1">title<
 /td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define html title attribute</td></tr><tr><td colspan="1" rowspan="1">disabled</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define html disabled attribute</td></tr><tr><td colspan="1" rowspan="1">label</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define label of form element</td></tr><tr><td colspan="1" rowspan="1">labelPosition</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define label position of form element (top/left), default to left</td></tr><tr><td colspan="1" rowspan="1">requiredPosition</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define required label position of form element (left/right), default to right</td></tr
 ><tr><td colspan="1" rowspan="1">errorPosition</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define error position of form element (top|bottom), default to top</td></tr><tr><td colspan="1" rowspan="1">name</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">Form Element's field name mapping</td></tr><tr><td colspan="1" rowspan="1">required</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">Boolean</td><td colspan="1" rowspan="1">add * to label (true to add false otherwise)</td></tr><tr><td colspan="1" rowspan="1">tabIndex</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define html tabindex attribute</td></tr><tr><td colspan="1" rowspan="1">value</td><td colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">Object</td><td colspan="1" rowspan="1">define value of form element</t
 d></tr></tbody></table></p>
-
     <div class="aui-message warning shadowed information-macro">
                     <p class="title">When some attributes don't apply</p>
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
-                            
-<p>Some tag attributes may not be utilized by all, or any, of the templates. For example, the form tag supports the <code>tabindex</code> attribute, but none of the themes render the <code>tabindex</code>.</p>
+                            <p>Some tag attributes may not be utilized by all, or any, of the templates. For example, the form tag supports the <code>tabindex</code> attribute, but none of the themes render the <code>tabindex</code>.</p>
                     </div>
     </div>
-
-
-<h2 id="FormTags-Value/NameRelationship">Value/Name Relationship</h2>
-
-<p>In many of the tags (except for the form tag) there is a unique relationship between the <code>name</code> and <code>value</code> attributes. The <code>name</code> attribute provides the name for the tag, which in turn is used as the control attribute when the form is submitted. The value submitted is bound to the <code>name</code>. In most cases, the <code>name</code> maps to a simple JavaBean property, such as "postalCode". On a submit, the value would be set to the property by calling the <code>setPostalCode</code> mutator.</p>
-
-<p>Likewise, a form control could be populated by calling a JavaBean accessor, like <code>getPostalCode</code>. In the expression language, we can refer to the JavaBean property by name. An expression like "%{postalCode}" would in turn call <code>getPostalCode</code>.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Using Expressions to populate a form for editing</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;@s.form action=&quot;updateAddress&quot;&gt;
+<h2 id="FormTags-Value/NameRelationship">Value/Name Relationship</h2><p>In many of the tags (except for the form tag) there is a unique relationship between the <code>name</code> and <code>value</code> attributes. The <code>name</code> attribute provides the name for the tag, which in turn is used as the control attribute when the form is submitted. The value submitted is bound to the <code>name</code>. In most cases, the <code>name</code> maps to a simple JavaBean property, such as "postalCode". On a submit, the value would be set to the property by calling the <code>setPostalCode</code> mutator.</p><p>Likewise, a form control could be populated by calling a JavaBean accessor, like <code>getPostalCode</code>. In the expression language, we can refer to the JavaBean property by name. An expression like "%{postalCode}" would in turn call <code>getPostalCode</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-w
 idth: 1px;"><b>Using Expressions to populate a form for editing</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;@s.form action=&quot;updateAddress&quot;&gt;
     &lt;@s.textfield label=&quot;Postal Code&quot; name=&quot;postalCode&quot; value=&quot;%{postalCode}&quot;/&gt;
     ...
 &lt;/@s.form&gt;
 ]]></script>
-</div></div>
-<p>However, since the tags imply a relationship between the <code>name</code> and <code>value</code>, the <code>value</code> attribute is optional. If a <code>value</code> is not specified, by default, the JavaBean accessor is used instead.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Populating a form for editing, the easy way</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;@s.form action=&quot;updateAddress&quot;&gt;
+</div></div><p>However, since the tags imply a relationship between the <code>name</code> and <code>value</code>, the <code>value</code> attribute is optional. If a <code>value</code> is not specified, by default, the JavaBean accessor is used instead.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Populating a form for editing, the easy way</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;@s.form action=&quot;updateAddress&quot;&gt;
     &lt;@s.textfield label=&quot;Postal Code&quot; name=&quot;postalCode&quot;/&gt;
     ...
 &lt;/@s.form&gt;
 ]]></script>
-</div></div>
-<p>While most attributes are exposed to the underlying templates as the same key as the attribute (${parameters.label}), the <code>value</code> attribute is not. Instead, it can be accessed via the <code>nameValue</code> key (${parameters.nameValue}). The <code>nameValue</code> key indicates that the value may have been generated from the <code>name</code> attribute rather than explicitly defined in the <code>value</code> attribute.</p>
-
-<h2 id="FormTags-IDNameAssignment">ID Name Assignment</h2>
-
-<p>All form tags automatically assign an ID to the control, but the ID can be overridden if needed.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Forms </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> The default ID is the action name. For example, "updateAddress". </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Controls </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> The default ID is the form's name concatenated with the tag name. For example, "updateAddress_postalCode". </p></td></tr></tbody></table></div>
-
-
-<h2 id="FormTags-RequiredAttribute">Required Attribute</h2>
-
-<p>The <code>required</code> attribute on many UI tags defaults to true only if you have client-side validation enabled, and a validator is associated with that particular field.</p>
-
-<h2 id="FormTags-Tooltip">Tooltip</h2>
-
-<p><b>tooltipConfig is deprecated, use individual tooltip configuration attributes instead </b></p>
+</div></div><p>While most attributes are exposed to the underlying templates as the same key as the attribute (${parameters.label}), the <code>value</code> attribute is not. Instead, it can be accessed via the <code>nameValue</code> key (${parameters.nameValue}). The <code>nameValue</code> key indicates that the value may have been generated from the <code>name</code> attribute rather than explicitly defined in the <code>value</code> attribute.</p><h2 id="FormTags-IDNameAssignment">ID Name Assignment</h2><p>All form tags automatically assign an ID to the control, but the ID can be overridden if needed.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Forms</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>The default ID is the action name. For example, "updateAddress".</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Controls</p></th><td colspan="1" rowspan="1" class="confluenceTd">
 <p>The default ID is the form's name concatenated with the tag name. For example, "updateAddress_postalCode".</p></td></tr></tbody></table></div><h2 id="FormTags-Formlabelpositionpropagation">Form labelposition propagation</h2><p>When&#160;<code>labelposition</code> attribute was defined for&#160;<code>&lt;s:form&gt;</code> tag it will be propagated to all form elements, but if form element defines its own&#160;<code>labelposition</code> it will take precedence over&#160;<code>&lt;s:form&gt;</code>'s attribute. Since 2.3.17.</p><h2 id="FormTags-RequiredAttribute">Required Attribute</h2><p>The <code>required</code> attribute on many UI tags defaults to true only if you have client-side validation enabled, and a validator is associated with that particular field.</p><h2 id="FormTags-Tooltip">Tooltip</h2><p><b>tooltipConfig is deprecated, use individual tooltip configuration attributes instead </b></p>
 
 <p>Every Form UI component (in xhtml / css_xhtml or any other that extends them) can
 have tooltips assigned to them. The Form component's tooltip related attribute, once
@@ -272,7 +206,6 @@ tooltipDelay defined as 5000.</p>
 <b>Example 3:</b> Set tooltip config through the body of the param tag<br clear="none">
 <b>Example 4:</b> Set tooltip config through the value attribute of the param tag<br clear="none">
 <b>Example 5:</b> Set tooltip config through the tooltip attributes of the component tag<br clear="none"></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[
 
@@ -328,9 +261,7 @@ tooltipDelay defined as 5000.</p>
          tooltipIconPath=&quot;/myImages/myIcon.gif&quot; /&gt;
 
 ]]></script>
-</div></div>
-
-<h2 id="FormTags-Next:">Next: <a shape="rect" href="ui-tag-reference.html">UI Tag Reference</a></h2></div>
+</div></div><h2 id="FormTags-Next:">Next: <a shape="rect" href="ui-tag-reference.html">UI Tag Reference</a></h2></div>
         </div>
 
         

Modified: websites/production/struts/content/release/2.3.x/docs/form-validation-using-xml.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/form-validation-using-xml.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/form-validation-using-xml.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
     
@@ -139,45 +138,17 @@ under the License. 
             <div id="ConfluenceContent">    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            <p>The example code for this tutorial, form_xml_validation, is available for checkout at <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/">https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/</a></p>
+                            <p>The example code for this tutorial, form_xml_validation, is available for checkout at <a shape="rect" class="external-link" href="https://github.com/apache/struts-examples" rel="nofollow">https://github.com/apache/struts-examples</a></p>
                     </div>
     </div>
-
-
-<h3 id="FormValidationUsingXML-Introduction">Introduction</h3>
-<p>In this tutorial we'll cover how to validate a user's input in form fields using Struts 2's XML validation methodology.  In the <a shape="rect" href="form-validation.html">Form Validation</a> tutorial we discussed validating a user's input using the validate method in the Action class. Using a separate XML validation file gives you the ability to use validators built-in to the Struts 2 framework.</p>
-
-    <div class="aui-message success shadowed information-macro">
+<h3 id="FormValidationUsingXML-Introduction">Introduction</h3><p>In this tutorial we'll cover how to validate a user's input in form fields using Struts 2's XML validation methodology. In the <a shape="rect" href="form-validation.html">Form Validation</a> tutorial we discussed validating a user's input using the validate method in the Action class. Using a separate XML validation file gives you the ability to use validators built-in to the Struts 2 framework.</p>    <div class="aui-message success shadowed information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
                             <p>The <a shape="rect" class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don't find an answer to your problem, post a question on the mailing list.</p>
                     </div>
     </div>
-
-
-<h3 id="FormValidationUsingXML-ExampleApplication">Example Application</h3>
-<p>The example application that supports this tutorial shows how to use Struts 2's XML validation methodology.  The information that can be edited is encapsulated in an object of class Person. </p>
-
-<p>To enable the user to edit his information that is stored in the Person object, we have this form:</p>
-
-<p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/20644608/form-validation-1.png?version=1&amp;modificationDate=1379331606000&amp;api=v2" data-image-src="/confluence/download/attachments/20644608/form-validation-1.png?version=1&amp;modificationDate=1379331606000&amp;api=v2"></p>
-
-<p>When the user submits the form, we want to validate his entries into the form fields.  </p>
-
-<h3 id="FormValidationUsingXML-ValidationUsingXML">Validation Using XML</h3>
-<p>To validate a user's form field entries you can use a separate XML file that contains your validation rules.  The XML file that contains the validation rules must be named as ActionClassName-validation.xml.  In the example application, the XML validation file is named EditAction-validation.xml (see src/main/resources/org/apache/struts/edit/action).</p>
-
-<p>Struts 2 provides several different validators that you can use in the XML validation file.  See <a shape="rect" href="validation.html">Validation</a> for a list of validators you can employ.</p>
-
-<p>In the above form, we want to ensure the user enters a first name.  To have the Struts 2 framework enforce that rule we can used the Struts 2 <a shape="rect" href="requiredstring-validator.html">requiredstring validator</a>.  This validator checks that the user has entered a string value in the form field.</p>
-
-<h3 id="FormValidationUsingXML-XMLValidatorFormat">XML Validator Format</h3>
-<p>In the XML validation file (for this example that is EditAction-validation.xml), is this XML:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>XML Validator Required String</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-&lt;!DOCTYPE validators PUBLIC &quot;-//Apache Struts//XWork Validator 1.0.3//EN&quot;
+<h3 id="FormValidationUsingXML-ExampleApplication">Example Application</h3><p>The example application that supports this tutorial shows how to use Struts 2's XML validation methodology. The information that can be edited is encapsulated in an object of class Person.</p><p>To enable the user to edit his information that is stored in the Person object, we have this form:</p><p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/20644608/form-validation-1.png?version=1&amp;modificationDate=1379331606000&amp;api=v2" data-image-src="/confluence/download/attachments/20644608/form-validation-1.png?version=1&amp;modificationDate=1379331606000&amp;api=v2"></p><p>When the user submits the form, we want to validate his entries into the form fields.</p><h3 id="FormValidationUsingXML-ValidationUsingXML">Validation Using XML</h3><p>To validate a user's form field entries you can use a separate XML file that contains 
 your validation rules. The XML file that contains the validation rules must be named as ActionClassName-validation.xml. In the example application, the XML validation file is named EditAction-validation.xml (see src/main/resources/org/apache/struts/edit/action).</p><p>Struts 2 provides several different validators that you can use in the XML validation file. See <a shape="rect" href="validation.html">Validation</a> for a list of validators you can employ.</p><p>In the above form, we want to ensure the user enters a first name. To have the Struts 2 framework enforce that rule we can used the Struts 2 <a shape="rect" href="requiredstring-validator.html">requiredstring validator</a>. This validator checks that the user has entered a string value in the form field.</p><h3 id="FormValidationUsingXML-XMLValidatorFormat">XML Validator Format</h3><p>In the XML validation file (for this example that is EditAction-validation.xml), is this XML:</p><div class="code panel pdl" style="border-widt
 h: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>XML Validator Required String</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;!DOCTYPE validators PUBLIC &quot;-//Apache Struts//XWork Validator 1.0.3//EN&quot;
  &quot;http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd&quot;&gt;
 
 &lt;validators&gt;
@@ -188,29 +159,14 @@ under the License. 
 &lt;/validators&gt;
 
 ]]></script>
-</div></div>
-
-<p>Within the validators node you can have 1 or more validator nodes.  The type attribute specifies which validator you want the Struts 2 framework to use (see <a shape="rect" href="validation.html">Validation</a>).  The param name="fieldname" node is used to tell the framework which form field entry to apply the rule to.  See edit.jsp for the form fields and their name value (review <a shape="rect" href="struts-2-form-tags.html">Struts 2 Form Tags</a> if you're not familiar with how to use Struts 2 form tags).  The message node is used to tell the framework what message to display if the validation fails.</p>
-
-    <div class="aui-message success shadowed information-macro">
+</div></div><p>Within the validators node you can have 1 or more validator nodes. The type attribute specifies which validator you want the Struts 2 framework to use (see <a shape="rect" href="validation.html">Validation</a>). The param name="fieldname" node is used to tell the framework which form field entry to apply the rule to. See edit.jsp for the form fields and their name value (review <a shape="rect" href="struts-2-form-tags.html">Struts 2 Form Tags</a> if you're not familiar with how to use Struts 2 form tags). The message node is used to tell the framework what message to display if the validation fails.</p>    <div class="aui-message success shadowed information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            <p>There are alternate ways to write the XML that goes in the validation XML file.  See <a shape="rect" href="validation.html">Validation</a> in the Struts 2 documentation for a full discussion.</p>
+                            <p>There are alternate ways to write the XML that goes in the validation XML file. See <a shape="rect" href="validation.html">Validation</a> in the Struts 2 documentation for a full discussion.</p>
                     </div>
     </div>
-
-
-<p>For example if the user doesn't enter a value in the first name form field and clicks on the Save Changes button, he will see the following.</p>
-
-<p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/20644608/form-validation-2.png?version=1&amp;modificationDate=1379331660000&amp;api=v2" data-image-src="/confluence/download/attachments/20644608/form-validation-2.png?version=1&amp;modificationDate=1379331660000&amp;api=v2"></p>
-
-<h3 id="FormValidationUsingXML-ValidatingAnEmailAddress">Validating An Email Address</h3>
-<p>You can use the Struts 2 <a shape="rect" href="email-validator.html">email validator</a> to validate the user's input in the email field.  Here is the validator node that is in the EditAction-validation.xml file.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Email Validator</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-
- &lt;validator type=&quot;requiredstring&quot;&gt;
+<p>For example if the user doesn't enter a value in the first name form field and clicks on the Save Changes button, he will see the following.</p><p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/20644608/form-validation-2.png?version=1&amp;modificationDate=1379331660000&amp;api=v2" data-image-src="/confluence/download/attachments/20644608/form-validation-2.png?version=1&amp;modificationDate=1379331660000&amp;api=v2"></p><h3 id="FormValidationUsingXML-ValidatingAnEmailAddress">Validating An Email Address</h3><p>You can use the Struts 2 <a shape="rect" href="email-validator.html">email validator</a> to validate the user's input in the email field. Here is the validator node that is in the EditAction-validation.xml file.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Email Validator</b></div><div class="codeConte
 nt panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[ &lt;validator type=&quot;requiredstring&quot;&gt;
  	&lt;param name=&quot;fieldname&quot;&gt;personBean.email&lt;/param&gt;
  	&lt;message&gt;Email address is required.&lt;/message&gt;
  &lt;/validator&gt;
@@ -220,17 +176,8 @@ under the License. 
  &lt;/validator&gt;
 
 ]]></script>
-</div></div>
-
-<p>Note that in the example, we are requiring the user to enter an email address and then validating the email address the user entered.</p>
-
-<h3 id="FormValidationUsingXML-ValidatingAUser'sInputUsingARegularExpression">Validating A User's Input Using A Regular Expression</h3>
-<p>The Struts 2 framework provides a powerful way to validate a user's form field input by using the <a shape="rect" href="regex-validator.html">regex validator</a>.  In the example application, we want to ensure the user enters the phone number in the format 999-999-9999.  We can use a regular expression and the <a shape="rect" href="regex-validator.html">regex validator</a> to enforce this rule.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>REGEX Validator</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-&lt;validator type=&quot;requiredstring&quot;&gt;
+</div></div><p>Note that in the example, we are requiring the user to enter an email address and then validating the email address the user entered.</p><h3 id="FormValidationUsingXML-ValidatingAUser'sInputUsingARegularExpression">Validating A User's Input Using A Regular Expression</h3><p>The Struts 2 framework provides a powerful way to validate a user's form field input by using the <a shape="rect" href="regex-validator.html">regex validator</a>. In the example application, we want to ensure the user enters the phone number in the format 999-999-9999. We can use a regular expression and the <a shape="rect" href="regex-validator.html">regex validator</a> to enforce this rule.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>REGEX Validator</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;validator type=&quot;requiredstring&quot;&gt;
  	&lt;param name=&quot;fieldname&quot;&gt;personBean.phoneNumber&lt;/param&gt;
  	&lt;message&gt;Phone number is required.&lt;/message&gt;
  &lt;/validator&gt;
@@ -241,43 +188,15 @@ under the License. 
 &lt;/validator&gt;
 
 ]]></script>
-</div></div>
-
-<p>The param name="expression" node is used to specify the regular expression that will be applied to the user's input.  Note how the regular expression is contained within a CDATA section.</p>
-
-<h3 id="FormValidationUsingXML-ValidatingAUser'sInputUsingAnOGNLExpression">Validating A User's Input Using An OGNL Expression</h3>
-<p>In the example application, we want to ensure the user checks at least one of the car model check boxes.  To enforce this rule we can use the <a shape="rect" href="fieldexpression-validator.html">fieldexpression validator</a>.  Here's the XML for that validator node.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FieldExpression Validator</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-&lt;validator type=&quot;fieldexpression&quot;&gt;
+</div></div><p>The param name="expression" node is used to specify the regular expression that will be applied to the user's input. Note how the regular expression is contained within a CDATA section.</p><h3 id="FormValidationUsingXML-ValidatingAUser'sInputUsingAnOGNLExpression">Validating A User's Input Using An OGNL Expression</h3><p>In the example application, we want to ensure the user checks at least one of the car model check boxes. To enforce this rule we can use the <a shape="rect" href="fieldexpression-validator.html">fieldexpression validator</a>. Here's the XML for that validator node.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FieldExpression Validator</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;validator type=&quot;fieldexpression&quot;&gt;
 	&lt;param name=&quot;fieldname&quot;&gt;personBean.carModels&lt;/param&gt;
 	&lt;param name=&quot;expression&quot;&gt;&lt;![CDATA[personBean.carModels.length &gt; 0]]&gt;&lt;/param&gt;
 	&lt;message&gt;You must select at least one car model.&lt;/message&gt;
 &lt;/validator&gt;
 
 ]]></script>
-</div></div>
-
-<p>The param name="expression" node contains an OGNL expression that evaluates to true or false.  We haven't previously discussed OGNL, which stands for Object-Graph Navigation Language (see <a shape="rect" class="external-link" href="http://www.opensymphony.com/ognl/" rel="nofollow">http://www.opensymphony.com/ognl/</a> and <a shape="rect" href="ognl.html">OGNL</a>).  OGNL expressions can be evaluated by the Struts 2 framework as Java statements.  </p>
-
-<p>In the above XML the value of the param name="expression" node, personBean.carModels.length &gt; 0, will be evaluated by the framework as a Java statement.  The part personBean.carModels tells the framework to call the getCarModels method of class Person.  That method returns an Array.  Since class Array has a length attribute, the framework will get the value of the length attribute of the Array returned by the getCarModels method.</p>
-
-<p>If the user did not check any of the check boxes, the Array returned by the getCarModels method will have a length value of 0.  Since the complete OGNL expression will only evaluate to true if the length value is greater than 0, the validation fails.  The user will see this.</p>
-
-<p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/20644608/form-validation-3.png?version=1&amp;modificationDate=1379331679000&amp;api=v2" data-image-src="/confluence/download/attachments/20644608/form-validation-3.png?version=1&amp;modificationDate=1379331679000&amp;api=v2"></p>
-
-<p>The fieldexpression validator is useful when doing conditional validation of a user's input.  If the OGNL expression doesn't evaluate to true then the user's input won't be allowed.</p>
-
-<h3 id="FormValidationUsingXML-Summary">Summary</h3>
-<p>The Struts 2 framework provides easy-to-use validation methodologies.  You can add a validate method to the Action class or have a separate XML file with validation rules or you can use a combination of both methodologies.</p>
-
-<h3 id="FormValidationUsingXML-UpNext">Up Next</h3>
-
-<p>In our next tutorial we'll cover how to enable one action node in struts.xml to respond to several different action URLs.</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Next </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Onward to <a shape="rect" href="wildcard-method-selection.html">Wildcard Method Selection</a> </p></td></tr></tbody></table></div></div>
+</div></div><p>The param name="expression" node contains an OGNL expression that evaluates to true or false. We haven't previously discussed OGNL, which stands for Object-Graph Navigation Language (see <a shape="rect" class="external-link" href="http://www.opensymphony.com/ognl/" rel="nofollow">http://www.opensymphony.com/ognl/</a> and <a shape="rect" href="ognl.html">OGNL</a>). OGNL expressions can be evaluated by the Struts 2 framework as Java statements.</p><p>In the above XML the value of the param name="expression" node, personBean.carModels.length &gt; 0, will be evaluated by the framework as a Java statement. The part personBean.carModels tells the framework to call the getCarModels method of class Person. That method returns an Array. Since class Array has a length attribute, the framework will get the value of the length attribute of the Array returned by the getCarModels method.</p><p>If the user did not check any of the check boxes, the Array returned by the getCarModels 
 method will have a length value of 0. Since the complete OGNL expression will only evaluate to true if the length value is greater than 0, the validation fails. The user will see this.</p><p><img class="confluence-embedded-image confluence-content-image-border" src="https://cwiki.apache.org/confluence/download/attachments/20644608/form-validation-3.png?version=1&amp;modificationDate=1379331679000&amp;api=v2" data-image-src="/confluence/download/attachments/20644608/form-validation-3.png?version=1&amp;modificationDate=1379331679000&amp;api=v2"></p><p>The fieldexpression validator is useful when doing conditional validation of a user's input. If the OGNL expression doesn't evaluate to true then the user's input won't be allowed.</p><h3 id="FormValidationUsingXML-Summary">Summary</h3><p>The Struts 2 framework provides easy-to-use validation methodologies. You can add a validate method to the Action class or have a separate XML file with validation rules or you can use a combination of 
 both methodologies.</p><h3 id="FormValidationUsingXML-UpNext">Up Next</h3><p>In our next tutorial we'll cover how to enable one action node in struts.xml to respond to several different action URLs.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Next</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Onward to <a shape="rect" href="wildcard-method-selection.html">Wildcard Method Selection</a></p></td></tr></tbody></table></div></div>
         </div>
 
         

Modified: websites/production/struts/content/release/2.3.x/docs/form-validation.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/form-validation.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/form-validation.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
     
@@ -139,39 +138,17 @@ under the License. 
             <div id="ConfluenceContent">    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            <p>This tutorial assumes you've completed the <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial and have a working form_processing project.  The example code for this tutorial, form_validation, is available for checkout from the Struts 2 sandbox subversion repository: <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples">https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples</a>.</p>
+                            <p>This tutorial assumes you've completed the <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial and have a working form_processing project. The example code for this tutorial, form_validation, is available for checkout from the Struts 2 GitHub repository: <a shape="rect" class="external-link" href="https://github.com/apache/struts-examples" rel="nofollow">https://github.com/apache/struts-examples</a>.</p>
                     </div>
     </div>
-
-
-<h3 id="FormValidation-Introduction">Introduction</h3>
-<p>In this tutorial we'll explore using Struts 2 to validate the user's input on a form.  There are two ways you can use Struts 2 to do form validation.  This tutorial will cover the more basic method, where the validation is included in the Struts 2 Action class.  </p>
-
-
-    <div class="aui-message success shadowed information-macro">
+<h3 id="FormValidation-Introduction">Introduction</h3><p>In this tutorial we'll explore using Struts 2 to validate the user's input on a form. There are two ways you can use Struts 2 to do form validation. This tutorial will cover the more basic method, where the validation is included in the Struts 2 Action class.</p>    <div class="aui-message success shadowed information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            <p>The <a shape="rect" class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help.  If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list.  If you don't find an answer to your problem, post a question on the mailing list. </p>
+                            <p>The <a shape="rect" class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don't find an answer to your problem, post a question on the mailing list.</p>
                     </div>
     </div>
-
-
-<h3 id="FormValidation-AddvalidateMethod">Add validate Method</h3>
-<p>To enable the Struts 2 Action class to validate a user's input on a Struts 2 form, you must define a validate method in your Action class.  Using the example from <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial, let's say that we have these business rules:</p>
-
-<p>1. User must provide a first name<br clear="none">
-2. User must provide an email address<br clear="none">
-3. User younger then 18 cannot register</p>
-
-<p>If you recall from the <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial the user's input into the form fields is placed by Struts 2 into the Java model class personBean.  So a user's input into the firstName field would end up as the value for personBean's firstName instance field (via the personBean.setFirstName method).</p>
-
-<p>In the validate method we can refer to get the values of personBean's instance fields by using the appropriate get methods.  Once we have the values we can employ logic to enforce our business rules.</p>
-
-<p>Add the following validate method to Register.java (the Action class).</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>validate method</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-	public void validate(){
+<h3 id="FormValidation-AddvalidateMethod">Add validate Method</h3><p>To enable the Struts 2 Action class to validate a user's input on a Struts 2 form, you must define a validate method in your Action class. Using the example from <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial, let's say that we have these business rules:</p><p>1. User must provide a first name<br clear="none"> 2. User must provide an email address<br clear="none"> 3. User younger then 18 cannot register</p><p>If you recall from the <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial the user's input into the form fields is placed by Struts 2 into the Java model class personBean. So a user's input into the firstName field would end up as the value for personBean's firstName instance field (via the personBean.setFirstName method).</p><p>In the validate method we can refer to get the values of personBean's instance fields by using the appropriate get methods. Once we 
 have the values we can employ logic to enforce our business rules.</p><p>Add the following validate method to Register.java (the Action class).</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>validate method</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[	public void validate(){
 		
 		if ( personBean.getFirstName().length() == 0 ){	
 
@@ -195,55 +172,13 @@ under the License. 
 		
 	}
 ]]></script>
-</div></div>
-
-<p>When the user presses the submit button on the register form, Struts 2 will transfer the user's input to the personBean's instance fields.  Then Struts 2 will automatically execute the validate method.  If any of the if statements are true, Struts 2 will call its addFieldError method (which our Action class inherited by extending ActionSupport).</p>
-
-<p>If any errors have been added then Struts 2 will not proceed to call the execute method.  Rather the Struts 2 framework will return "input" as the result of calling the action.</p>
-
-<h3 id="FormValidation-HandleInputBeingReturned">Handle Input Being Returned</h3>
-<p>So what should we do if Struts 2 returns "input" indicating that the user's input in the form is not valid?  In most cases we will want to redisplay the web page that has the form and include in the form error messages to inform the user what is wrong.</p>
-
-<p>To handle the return value of "input" we need to add the following result to our action node in 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 name=&quot;input&quot;&gt;/register.jsp&lt;/result&gt;
+</div></div><p>When the user presses the submit button on the register form, Struts 2 will transfer the user's input to the personBean's instance fields. Then Struts 2 will automatically execute the validate method. If any of the if statements are true, Struts 2 will call its addFieldError method (which our Action class inherited by extending ActionSupport).</p><p>If any errors have been added then Struts 2 will not proceed to call the execute method. Rather the Struts 2 framework will return "input" as the result of calling the action.</p><h3 id="FormValidation-HandleInputBeingReturned">Handle Input Being Returned</h3><p>So what should we do if Struts 2 returns "input" indicating that the user's input in the form is not valid? In most cases we will want to redisplay the web page that has the form and include in the form error messages to inform the user what is wrong.</p><p>To handle the return value of "input" we need to add the following result to our action node in 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 name=&quot;input&quot;&gt;/register.jsp&lt;/result&gt;
 ]]></script>
-</div></div>
-
-<p>The above result node goes just after the success result node for the register action and before the closing of the action node.</p>
-
-<h3 id="FormValidation-ErrorMessages">Error Messages</h3>
-<p>So when validation fails and Struts 2 returns input, the Struts 2 framework will redisplay the register.jsp.  Since we used Struts 2 form tags, automatically Struts 2 will add the error messages.  These error messages are the ones we specified in the addFieldError method call.  The addFieldError method takes two arguments.  The first is the form field name to which the error applies and the second is the error message to display above that form field.</p>
-
-<p>So the following addFieldError method call:</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[
-addFieldError( &quot;personBean.firstName&quot;, &quot;First name is required.&quot;)
+</div></div><p>The above result node goes just after the success result node for the register action and before the closing of the action node.</p><h3 id="FormValidation-ErrorMessages">Error Messages</h3><p>So when validation fails and Struts 2 returns input, the Struts 2 framework will redisplay the register.jsp. Since we used Struts 2 form tags, automatically Struts 2 will add the error messages. These error messages are the ones we specified in the addFieldError method call. The addFieldError method takes two arguments. The first is the form field name to which the error applies and the second is the error message to display above that form field.</p><p>So the following addFieldError method call:</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[addFieldError( &quot;personBean.firstName&quot;, &quot;First name is required.&quot;)
 ]]></script>
-</div></div>
-<p>will cause the message "First name is required" to be displayed above the firstName field on the form.</p>
-
-<p>If you have made the above changes to the <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial or you have downloaded from <a shape="rect" class="external-link" href="http://code.google.com/p/struts2-examples/downloads/list" rel="nofollow">Google Code</a> either the Form_Validation_Struts2_Ant or Form_Validation_Struts2_Mvn projects run the application (see the README.txt in the project root folder).  Click on the Please register link.  On the registration form, just click the submit button and you should see:</p>
-
-<p><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/14811892/form_errors.png?version=1&amp;modificationDate=1267884381000&amp;api=v2" data-image-src="/confluence/download/attachments/14811892/form_errors.png?version=1&amp;modificationDate=1267884381000&amp;api=v2"></p>
-
-<p>Struts 2 called the validate method, validation failed, the register.jsp was displayed with the error messages.</p>
-
-<h3 id="FormValidation-StylingTheErrorMessages">Styling The Error Messages</h3>
-<p>The Struts 2 s:head tag can be used to provide CSS that includes a style for the error message.  Add <code>&lt;s:head /&gt;</code> to register.jsp before the closing HTML <code>&lt;/head&gt;</code> tag.  Go through the same steps as above and you should see:</p>
-
-<p><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/14811892/form_errors_styled.png?version=1&amp;modificationDate=1267884381000&amp;api=v2" data-image-src="/confluence/download/attachments/14811892/form_errors_styled.png?version=1&amp;modificationDate=1267884381000&amp;api=v2"></p>
-
-<h3 id="FormValidation-Summary">Summary</h3>
-<p>This tutorial covered validating a user's form input by adding a validate method to an Action class.  There is another more sophisticated way to validate user input using XML.  If you want to learn more about using XML for validation in Struts 2 see <a shape="rect" href="validation.html">Validation</a>.</p>
-
-<h3 id="FormValidation-UpNext">Up Next</h3>
-
-<p>In our next tutorial we'll cover how to use message resource files to separate out the text from the view page.</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Next </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Onward to <a shape="rect" href="message-resource-files.html">Message Resource Files</a> </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Prev </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Return to <a shape="rect" href="processing-forms.html">Processing Forms</a> </p></td></tr></tbody></table></div></div>
+</div></div><p>will cause the message "First name is required" to be displayed above the firstName field on the form.</p><p>If you have made the above changes to the <a shape="rect" href="processing-forms.html">Processing Forms</a> tutorial or you have downloaded from <a shape="rect" class="external-link" href="http://code.google.com/p/struts2-examples/downloads/list" rel="nofollow">Google Code</a> either the Form_Validation_Struts2_Ant or Form_Validation_Struts2_Mvn projects run the application (see the README.txt in the project root folder). Click on the Please register link. On the registration form, just click the submit button and you should see:</p><p><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/14811892/form_errors.png?version=1&amp;modificationDate=1267884381000&amp;api=v2" data-image-src="/confluence/download/attachments/14811892/form_errors.png?version=1&amp;modificationDate=1267884381000&amp;api=v2"></p><p>Struts 2 c
 alled the validate method, validation failed, the register.jsp was displayed with the error messages.</p><h3 id="FormValidation-StylingTheErrorMessages">Styling The Error Messages</h3><p>The Struts 2 s:head tag can be used to provide CSS that includes a style for the error message. Add <code>&lt;s:head /&gt;</code> to register.jsp before the closing HTML <code>&lt;/head&gt;</code> tag. Go through the same steps as above and you should see:</p><p><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/14811892/form_errors_styled.png?version=1&amp;modificationDate=1267884381000&amp;api=v2" data-image-src="/confluence/download/attachments/14811892/form_errors_styled.png?version=1&amp;modificationDate=1267884381000&amp;api=v2"></p><h3 id="FormValidation-Summary">Summary</h3><p>This tutorial covered validating a user's form input by adding a validate method to an Action class. There is another more sophisticated way to validate user input usin
 g XML. If you want to learn more about using XML for validation in Struts 2 see <a shape="rect" href="validation.html">Validation</a>.</p><h3 id="FormValidation-UpNext">Up Next</h3><p>In our next tutorial we'll cover how to use message resource files to separate out the text from the view page.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Next</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Onward to <a shape="rect" href="message-resource-files.html">Message Resource Files</a></p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Prev</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Return to <a shape="rect" href="processing-forms.html">Processing Forms</a></p></td></tr></tbody></table></div></div>
         </div>
 
                     <div class="tabletitle">

Modified: websites/production/struts/content/release/2.3.x/docs/form.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/form.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/form.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>

Modified: websites/production/struts/content/release/2.3.x/docs/formatting-dates-and-numbers.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/formatting-dates-and-numbers.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/formatting-dates-and-numbers.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
     
     <script type="text/javascript">

Modified: websites/production/struts/content/release/2.3.x/docs/freemarker-result.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/freemarker-result.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/freemarker-result.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>

Modified: websites/production/struts/content/release/2.3.x/docs/freemarker-support.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/freemarker-support.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/freemarker-support.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
     

Modified: websites/production/struts/content/release/2.3.x/docs/freemarker-tags.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/freemarker-tags.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/freemarker-tags.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
     

Modified: websites/production/struts/content/release/2.3.x/docs/freemarker.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/freemarker.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/freemarker.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>

Modified: websites/production/struts/content/release/2.3.x/docs/generator.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/generator.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/generator.html Sat Apr 26 18:40:39 2014
@@ -37,7 +37,6 @@ under the License. 
     <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
     <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
     <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
-    <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
             <script src='http://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>

Modified: websites/production/struts/content/release/2.3.x/docs/getting-started.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/getting-started.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/getting-started.html Sat Apr 26 18:40:39 2014
@@ -128,70 +128,16 @@ under the License. 
             <div id="ConfluenceContent">    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            <p> The framework documentation is written for active web developers and assumes a working knowledge about how Java web applications are built. For more about the underlying nuts and bolts, see the <a shape="rect" class="external-link" href="http://struts.apache.org/primer.html">Key Technologies Primer</a>.</p>
+                            <p>The framework documentation is written for active web developers and assumes a working knowledge about how Java web applications are built. For more about the underlying nuts and bolts, see the <a shape="rect" class="external-link" href="http://struts.apache.org/primer.html">Key Technologies Primer</a>.</p>
                     </div>
     </div>
-
-
-
-<p>Follow along with these tutorials to get started using Struts 2.  The example code for the tutorialsis available for checkout from the <br clear="none">
-Struts 2 subversion sandbox at <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples">https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples</a>. The example projects use Maven<br clear="none">
-to manage the artifact dependencies and to build the .war files.</p>
-
-    <div class="aui-message success shadowed information-macro">
+<p>Follow along with these tutorials to get started using Struts 2. The example code for the tutorialsis available for checkout from the <br clear="none"> Struts 2 GitHub repository at <a shape="rect" class="external-link" href="https://github.com/apache/struts-examples" rel="nofollow">https://github.com/apache/struts-examples</a>. The example projects use Maven<br clear="none"> to manage the artifact dependencies and to build the .war files.</p>    <div class="aui-message success shadowed information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            <p>The <a shape="rect" class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help.  If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list.  If you don't find an answer to your problem, post a question on the mailing list. </p>
+                            <p>The <a shape="rect" class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user mailing list</a> is an excellent place to get help. If you are having a problem getting the tutorial example applications to work search the Struts 2 mailing list. If you don't find an answer to your problem, post a question on the mailing list.</p>
                     </div>
     </div>
-
-
-<h3 id="GettingStarted-GettingStarted">Getting Started</h3>
-<p><a shape="rect" href="how-to-create-a-struts-2-web-application.html">How To Create A Struts 2 Web Application</a></p>
-
-<p><a shape="rect" href="hello-world-using-struts-2.html">Hello World Using Struts 2</a></p>
-
-<p><a shape="rect" href="using-struts-2-tags.html">Using Struts 2 Tags</a></p>
-
-<p><a shape="rect" href="coding-struts-2-actions.html">Coding Struts 2 Actions</a></p>
-
-<p><a shape="rect" href="processing-forms.html">Processing Forms</a></p>
-
-<p><a shape="rect" href="form-validation.html">Form Validation</a></p>
-
-<p><a shape="rect" href="message-resource-files.html">Message Resource Files</a></p>
-
-<p><a shape="rect" href="exception-handling.html">Exception Handling</a></p>
-
-<p><a shape="rect" href="debugging-struts.html">Debugging Struts</a></p>
-
-<p><a shape="rect" href="struts-2-form-tags.html">Struts 2 Form Tags</a></p>
-
-<p><a shape="rect" href="form-validation-using-xml.html">Form Validation Using XML</a></p>
-
-<p><a shape="rect" href="struts-control-tags.html">Control Tags</a></p>
-
-<p><a shape="rect" href="wildcard-method-selection.html">Wildcard Method Selection</a></p>
-
-<p><a shape="rect" href="struts-2-themes.html">Struts 2 Themes</a></p>
-
-<p><a shape="rect" href="spring-and-struts-2.html">Spring and Struts 2</a></p>
-
-<p><a shape="rect" href="struts-2-annotations.html">Struts 2 Annotations</a></p>
-
-<p><a shape="rect" href="introducing-interceptors.html">Introducing Interceptors</a></p>
-
-<p><a shape="rect" href="unit-testing.html">Unit Testing</a></p>
-
-<p><a shape="rect" href="http-session.html">HTTP Session</a></p>
-
-<p><a shape="rect" href="preparable-interface.html">Preparable Interface</a></p>
-
-<p><a shape="rect" href="exclude-parameters.html">Exclude Parameters</a></p>
-
-
-
-    <div class="aui-message hint shadowed information-macro">
+<h3 id="GettingStarted-GettingStarted">Getting Started</h3><p><a shape="rect" href="how-to-create-a-struts-2-web-application.html">How To Create A Struts 2 Web Application</a></p><p><a shape="rect" href="hello-world-using-struts-2.html">Hello World Using Struts 2</a></p><p><a shape="rect" href="using-struts-2-tags.html">Using Struts 2 Tags</a></p><p><a shape="rect" href="coding-struts-2-actions.html">Coding Struts 2 Actions</a></p><p><a shape="rect" href="processing-forms.html">Processing Forms</a></p><p><a shape="rect" href="form-validation.html">Form Validation</a></p><p><a shape="rect" href="message-resource-files.html">Message Resource Files</a></p><p><a shape="rect" href="exception-handling.html">Exception Handling</a></p><p><a shape="rect" href="debugging-struts.html">Debugging Struts</a></p><p><a shape="rect" href="struts-2-form-tags.html">Struts 2 Form Tags</a></p><p><a shape="rect" href="form-validation-using-xml.html">Form Validation Using XML</a></p><p><a shape="rect" hre
 f="struts-control-tags.html">Control Tags</a></p><p><a shape="rect" href="wildcard-method-selection.html">Wildcard Method Selection</a></p><p><a shape="rect" href="struts-2-themes.html">Struts 2 Themes</a></p><p><a shape="rect" href="spring-and-struts-2.html">Spring and Struts 2</a></p><p><a shape="rect" href="struts-2-annotations.html">Struts 2 Annotations</a></p><p><a shape="rect" href="introducing-interceptors.html">Introducing Interceptors</a></p><p><a shape="rect" href="unit-testing.html">Unit Testing</a></p><p><a shape="rect" href="http-session.html">HTTP Session</a></p><p><a shape="rect" href="preparable-interface.html">Preparable Interface</a></p><p><a shape="rect" href="exclude-parameters.html">Exclude Parameters</a></p>    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
                             <p>Looking for the old <a shape="rect" href="bootstrap.html">Bootstrap tutorials</a>?</p>

Added: websites/production/struts/content/release/2.3.x/docs/glassfish-2x.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/glassfish-2x.html (added)
+++ websites/production/struts/content/release/2.3.x/docs/glassfish-2x.html Sat Apr 26 18:40:39 2014
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License. 
+-->
+<html>
+<head>
+    <LINK type="text/css" rel="stylesheet" href="https://struts.apache.org/css/default.css">
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <link href='http://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
+    <link href='http://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
+    <script src='http://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
+            <script src='http://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
+    
+    <script type="text/javascript">
+        SyntaxHighlighter.defaults['toolbar'] = false;
+        SyntaxHighlighter.all();
+    </script>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>Glassfish 2.x</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a href="application-servers.html">Application Servers</a>&nbsp;&gt;&nbsp;<a href="glassfish-2x.html">Glassfish 2.x</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="http://www.google.com/search" method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Glassfish 2.x</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=40505336">
+                <img src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Edit Page"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=40505336">Edit Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">
+                <img src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Browse Space"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">Browse Space</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=40505336">
+                <img src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Add Page"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=40505336">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=40505336">
+                <img src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Add News"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=40505336">Add News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><h3 id="Glassfish2.x-Conventionpluginsupport">Convention plugin support</h3><p>To have proper support of the&#160;<a shape="rect" href="convention-plugin.html">Convention Plugin</a>&#160;in Glassfish 2.x when packed as EAR archive add the following constant to <code>struts.xml</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;constant name=&quot;struts.convention.exclude.parentClassLoader&quot; value=&quot;false&quot; /&gt;
+]]></script>
+</div></div><p>Thanks to&#160;<a shape="rect" class="external-link" href="http://stackoverflow.com/a/22490925/1805267" rel="nofollow">pavpal</a>!</p></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>
\ No newline at end of file