http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/ajax-validation.html
----------------------------------------------------------------------
diff --git a/content/docs/ajax-validation.html 
b/content/docs/ajax-validation.html
index e67d57d..43cd880 100644
--- a/content/docs/ajax-validation.html
+++ b/content/docs/ajax-validation.html
@@ -34,20 +34,6 @@ under the License.
             color:                 #666;
         }
     </style>
-    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
-    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
-    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -139,17 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1488973446459 {padding: 0px;}
-div.rbtoc1488973446459 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1488973446459 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style></p><div class="toc-macro rbtoc1488973446459">
-<ul class="toc-indentation"><li><a shape="rect" 
href="#AJAXValidation-Description">Description</a></li><li><a shape="rect" 
href="#AJAXValidation-Example">Example</a>
-<ul class="toc-indentation"><li><a shape="rect" 
href="#AJAXValidation-Createtheactionclass">Create the action 
class</a></li><li><a shape="rect" href="#AJAXValidation-MaptheAction">Map the 
Action</a></li><li><a shape="rect" href="#AJAXValidation-CreatetheJSP">Create 
the JSP</a></li><li><a shape="rect" href="#AJAXValidation-CustomTheme">Custom 
Theme</a></li><li><a shape="rect" href="#AJAXValidation-CSS">CSS</a></li><li><a 
shape="rect" href="#AJAXValidation-JavaScript">JavaScript</a></li></ul>
-</li><li><a shape="rect" href="#AJAXValidation-Howitworks">How it 
works</a></li><li><a shape="rect" 
href="#AJAXValidation-JSONValidationInterceptorparameters">JSONValidationInterceptor
 parameters</a></li><li><a shape="rect" 
href="#AJAXValidation-FlowchartofAJAXvalidation">Flow chart of AJAX 
validation</a></li></ul>
-</div><h2 id="AJAXValidation-Description">Description</h2><p>Struts provides 
<a shape="rect" href="client-validation.html">client side validation</a>(using 
JavaScript) for a few validators. Using AJAX validation, all <a shape="rect" 
href="validation.html">validators</a> available to the application on the 
server side can be used without forcing the page to reload, just to show 
validation errors. AJAX validation has a server side, which is in included in 
<a shape="rect" 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34268";>JSON
 Plugin</a> (an interceptor and a result). Client side must be handled by 
applictions themself. One reason for that is there are too many JavaScript 
frameworks and libraries. Struts has no preference which of them you use. 
Previous versions of Struts included a client side which was relying on the 
Dojo JS framework and was located in Struts Dojo plugin. That has been 
deprecated for a long time and was eventually removed.</p><h2 id="AJAXV
 alidation-Example">Example</h2><p>This example is taken from the Struts 
showcase application.</p><h3 id="AJAXValidation-Createtheactionclass">Create 
the action class</h3><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class AjaxFormSubmitAction extends ActionSupport 
{
+            <div id="ConfluenceContent"><h2 
id="AJAXValidation-Description">Description</h2><p>Struts provides <a 
shape="rect" href="client-validation.html">client side validation</a>(using 
JavaScript) for a few validators. Using AJAX validation, all <a shape="rect" 
href="validation.html">validators</a> available to the application on the 
server side can be used without forcing the page to reload, just to show 
validation errors. AJAX validation has a server side, which is in included in 
<a shape="rect" 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34268";>JSON
 Plugin</a> (an interceptor and a result). Client side must be handled by 
applictions themself. One reason for that is there are too many JavaScript 
frameworks and libraries. Struts has no preference which of them you use. 
Previous versions of Struts included a client side which was relying on the 
Dojo JS framework and was located in Struts Dojo plugin. That has been 
deprecated for a long time and was ev
 entually removed.</p><h2 id="AJAXValidation-Example">Example</h2><p>This 
example is taken from the Struts showcase application.</p><h3 
id="AJAXValidation-Createtheactionclass">Create the action class</h3><parameter 
ac:name="language">java</parameter><plain-text-body>public class 
AjaxFormSubmitAction extends ActionSupport {
     private String requiredValidatorField = null;
     private String requiredStringValidatorField = null;
     private Integer integerValidatorField = null;
@@ -240,9 +216,7 @@ div.rbtoc1488973446459 li {margin-left: 0px;padding-left: 
0px;}
     public void setUrlValidatorField(String urlValidatorField) {
         this.urlValidatorField = urlValidatorField;
     }
-}</pre>
-</div></div><p>&#160;</p><h3 id="AJAXValidation-MaptheAction">Map the 
Action</h3><p>Note that is is not necessary when using <a shape="rect" 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=73711";>Convention
 Plugin</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;!DOCTYPE struts PUBLIC "-//Apache Software 
Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"&gt;
+}</plain-text-body><p>&#160;</p><h3 id="AJAXValidation-MaptheAction">Map the 
Action</h3><p>Note that is is not necessary when using <a shape="rect" 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=73711";>Convention
 Plugin</a>.</p><parameter 
ac:name="">XML</parameter><plain-text-body>&lt;!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"&gt;
        
 &lt;struts&gt;
     &lt;package&gt;
@@ -252,9 +226,7 @@ div.rbtoc1488973446459 li {margin-left: 0px;padding-left: 
0px;}
              &lt;result 
type="jsonActionRedirect"&gt;ajaxFormSubmitSuccess&lt;/result&gt;
          &lt;/action&gt;
     &lt;/package&gt;
-</pre>
-</div></div><p>AJAX validation is performed by the <em>jsonValidation</em> 
interceptor. This interceptor is included in the 
<em>jsonValidationWorkflowStack</em>, and is required in order to perform AJAX 
validation. Normal results(input, success, etc) should be provided for the 
action in the case that someone tries to access the action directly, in which 
case normal validation will be triggered. So, how does the 
<em>jsonValidation</em> know that it must perform AJAX validation vs regular 
validation? We will see that in a minute, but you don't need to know that in 
order to use AJAX validation. Same applies for specialized Redirect Result Type 
<em>jsonActionRedirect</em>.</p><h3 id="AJAXValidation-CreatetheJSP">Create the 
JSP</h3><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: html; gutter: false; theme: Default" 
style="font-size:12px;">&lt;%@taglib prefix="s" uri="/struts-tags" %&gt;
+</plain-text-body><p>AJAX validation is performed by the 
<em>jsonValidation</em> interceptor. This interceptor is included in the 
<em>jsonValidationWorkflowStack</em>, and is required in order to perform AJAX 
validation. Normal results(input, success, etc) should be provided for the 
action in the case that someone tries to access the action directly, in which 
case normal validation will be triggered. So, how does the 
<em>jsonValidation</em> know that it must perform AJAX validation vs regular 
validation? We will see that in a minute, but you don't need to know that in 
order to use AJAX validation. Same applies for specialized Redirect Result Type 
<em>jsonActionRedirect</em>.</p><h3 id="AJAXValidation-CreatetheJSP">Create the 
JSP</h3><parameter ac:name="">HTML</parameter><plain-text-body>&lt;%@taglib 
prefix="s" uri="/struts-tags" %&gt;
 &lt;html&gt;
 &lt;head&gt;
     &lt;title&gt;Struts2 Showcase - Validation - AJAX Form Submit&lt;/title&gt;
@@ -280,11 +252,7 @@ div.rbtoc1488973446459 li {margin-left: 0px;padding-left: 
0px;}
         &lt;s:submit label="Submit" cssClass="btn btn-primary"/&gt;
     &lt;/s:form&gt;
 &lt;/body&gt;
-&lt;/html&gt;&#160;</pre>
-</div></div><p>Things to note on this JSP:</p><ul><li>The <em>form</em> tag 
<strong>does not</strong> have <em>validate</em> set to <em>true</em>, which 
would perform client validation before the AJAX validation.</li><li>It uses a 
customized theme <em>ajaxErrorContainers</em>. The default Struts themes 
generate HTML-Elements to show validation errors only if errors are present 
when page is created on server side. But in order to show validation errors 
that arrive later via AJAX it is necessary to have error-container elements in 
DOM always.</li></ul><p>What happens if validation succeeds? That depends on 
your request parameters and action configuration. If you are using 
<em>jsonActionRedirect</em> result mentioned above the action will be executed 
while AJAX request is active and respond with JSON providing a new URL to load. 
Otherwise the AJAX response will be empty and the form must be submitted a 2nd 
time but as usual request, not AJAX.</p><div class="confluence-information-macro
  confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Setting <em>validate</em> to 
<em>true</em> in the <em>form</em> tag will enable client side, JavaScript 
validation, which can be used along with AJAX validation (runs before the AJAX 
validation).</p></div></div><h3 id="AJAXValidation-CustomTheme">Custom 
Theme</h3><p>In this sample the&#160;<a shape="rect" 
href="struts-2-themes.html">custom theme</a> is based on <em>xhtml</em> theme. 
It is required to override 3 FTL files.</p><pre>theme.properties</pre><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: text; gutter: false; theme: Default" 
style="font-size:12px;">parent = xhtml</pre>
-</div></div><p>&#160;</p><pre>actionerror.ftl</pre><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;#--
+&lt;/html&gt;&#160;</plain-text-body><p>Things to note on this 
JSP:</p><ul><li>The <em>form</em> tag <strong>does not</strong> have 
<em>validate</em> set to <em>true</em>, which would perform client validation 
before the AJAX validation.</li><li>It uses a customized theme 
<em>ajaxErrorContainers</em>. The default Struts themes generate HTML-Elements 
to show validation errors only if errors are present when page is created on 
server side. But in order to show validation errors that arrive later via AJAX 
it is necessary to have error-container elements in DOM 
always.</li></ul><p>What happens if validation succeeds? That depends on your 
request parameters and action configuration. If you are using 
<em>jsonActionRedirect</em> result mentioned above the action will be executed 
while AJAX request is active and respond with JSON providing a new URL to load. 
Otherwise the AJAX response will be empty and the form must be submitted a 2nd 
time but as usual request, not AJAX.</p><parameter ac:n
 ame="">Client Validation</parameter><rich-text-body><p>Setting 
<em>validate</em> to <em>true</em> in the <em>form</em> tag will enable client 
side, JavaScript validation, which can be used along with AJAX validation (runs 
before the AJAX validation).</p></rich-text-body><h3 
id="AJAXValidation-CustomTheme">Custom Theme</h3><p>In this sample the&#160;<a 
shape="rect" href="struts-2-themes.html">custom theme</a> is based on 
<em>xhtml</em> theme. It is required to override 3 FTL 
files.</p><pre>theme.properties</pre><parameter 
ac:name="language">text</parameter><plain-text-body>parent = 
xhtml</plain-text-body><p>&#160;</p><pre>actionerror.ftl</pre><parameter 
ac:name="language">xml</parameter><plain-text-body>&lt;#--
     Make sure element is always present. To be filled later via JS.
 --&gt;
 &lt;ul&lt;#rt/&gt;
@@ -307,9 +275,7 @@ div.rbtoc1488973446459 li {margin-left: 0px;padding-left: 
0px;}
         &lt;/#if&gt;
     &lt;/#list&gt;
 &lt;/#if&gt;
-&lt;/ul&gt;</pre>
-</div></div><p>&#160;</p><pre>controlfooter.ftl</pre><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">${parameters.after!}&lt;#t/&gt;
+&lt;/ul&gt;</plain-text-body><p>&#160;</p><pre>controlfooter.ftl</pre><parameter
 
ac:name="language">xml</parameter><plain-text-body>${parameters.after!}&lt;#t/&gt;
     &lt;/td&gt;&lt;#lt/&gt;
 &lt;/tr&gt;
 &lt;#if (parameters.errorposition!"top") == 'bottom'&gt;
@@ -327,9 +293,7 @@ div.rbtoc1488973446459 li {margin-left: 0px;padding-left: 
0px;}
 &lt;/#if&gt;
 &lt;/#if&gt;
 
-</pre>
-</div></div><p>&#160;</p><pre>controlheader-core.ftl</pre><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&#160;&lt;#--
+</plain-text-body><p>&#160;</p><pre>controlheader-core.ftl</pre><parameter 
ac:name="language">xml</parameter><plain-text-body>&#160;&lt;#--
     Always include elements to show errors. They may be filled later via AJAX.
 --&gt;
 &lt;#assign hasFieldErrors = parameters.name?? &amp;&amp; fieldErrors?? 
&amp;&amp; fieldErrors[parameters.name]??/&gt;
@@ -388,17 +352,13 @@ ${parameters.labelseparator!":"?html}&lt;#t/&gt;
 &lt;tr&gt;
 &lt;/#if&gt;
 
-</pre>
-</div></div><h3 id="AJAXValidation-CSS">CSS</h3><p>To show users some nice 
visual feedback while waiting for AJAX response you can use a little CSS. 
Remember to include the referenced <em>indicator.gif</em>.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: css; gutter: false; theme: Default" 
style="font-size:12px;">.ajaxVisualFeedback {
+</plain-text-body><h3 id="AJAXValidation-CSS">CSS</h3><p>To show users some 
nice visual feedback while waiting for AJAX response you can use a little CSS. 
Remember to include the referenced <em>indicator.gif</em>.</p><parameter 
ac:name="language">css</parameter><plain-text-body>.ajaxVisualFeedback {
     width: 16px;
     height: 16px;
     background-image: url('../images/indicator.gif');
     background-repeat: no-repeat;
     float: right;
-}</pre>
-</div></div><p>&#160;</p><h3 
id="AJAXValidation-JavaScript">JavaScript</h3><p>Now this is where the magic 
happens. Here <em>jQuery</em> is used to register an eventhandler which 
intercepts form submits. It takes care of hiding validation errors that might 
be present, submit the form via AJAX and handle JSON responses.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: js; gutter: false; theme: Default" style="font-size:12px;"> 
/**
+}</plain-text-body><p>&#160;</p><h3 
id="AJAXValidation-JavaScript">JavaScript</h3><p>Now this is where the magic 
happens. Here <em>jQuery</em> is used to register an eventhandler which 
intercepts form submits. It takes care of hiding validation errors that might 
be present, submit the form via AJAX and handle JSON responses.</p><parameter 
ac:name="language">js</parameter><plain-text-body> /**
   * Validates form per AJAX. To be called as onSubmit handler.
   *
   * @param event onSubmit event
@@ -500,23 +460,16 @@ function _handleValidationResult(form, errors) {
 // register onSubmit handler
 $(window).bind('load', function() {
     $('form').bind('submit', ajaxFormValidation);
-});</pre>
-</div></div><p>&#160;</p><h2 id="AJAXValidation-Howitworks">How it 
works</h2><p><em>jsonValidation</em> interceptor must be placed on a stack, 
following the <em>validation</em> interceptor. The interceptor itself won't 
perform any validation, but will check for validation errors on the action 
being invoked (assuming that the action is ValidationAware).</p><p>If you just 
want to use AJAX validation, without knowing the implementation details, you 
can skip this section.</p><p>When the <em>jsonValidation</em> interceptor is 
invoked, it will look for a parameter named 
<em>struts.enableJSONValidation</em>, this parameter <strong>must</strong> be 
set to <em>true</em>, otherwise the interceptor won't do anything. Then the 
interceptor will look for a parameter named <em>struts.validateOnly</em>, if 
this parameter exists, is set to <em>true</em>, and there are validation errors 
(o action errors) they will be serialized into JSON in the form:</p><div 
class="code panel pdl" style="border-width
 : 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: javascript; gutter: false; theme: Default" 
style="font-size:12px;">{
+});</plain-text-body><p>&#160;</p><h2 id="AJAXValidation-Howitworks">How it 
works</h2><p><em>jsonValidation</em> interceptor must be placed on a stack, 
following the <em>validation</em> interceptor. The interceptor itself won't 
perform any validation, but will check for validation errors on the action 
being invoked (assuming that the action is ValidationAware).</p><p>If you just 
want to use AJAX validation, without knowing the implementation details, you 
can skip this section.</p><p>When the <em>jsonValidation</em> interceptor is 
invoked, it will look for a parameter named 
<em>struts.enableJSONValidation</em>, this parameter <strong>must</strong> be 
set to <em>true</em>, otherwise the interceptor won't do anything. Then the 
interceptor will look for a parameter named <em>struts.validateOnly</em>, if 
this parameter exists, is set to <em>true</em>, and there are validation errors 
(o action errors) they will be serialized into JSON in the form:</p><parameter 
ac:name="">JavaScript</para
 meter><plain-text-body>{
     "errors": ["Global Error 1", "Global Error 2"],
     "fieldErrors": {
         "field1": ["Field 1 Error 1", "Field 1 Error 2"],
         "field1": ["Field 2 Error 1", "Field 2 Error 2"]  
     }
 }
-</pre>
-</div></div><p>If the action implements the <em>ModelDrive</em> interface, 
"model." will be stripped from the field names in the returned JSON. If 
validation succeeds (and&#160;<em>struts.validateOnly</em> is true), an empty 
JSON string will be returned:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: javascript; gutter: false; theme: Default" 
style="font-size:12px;">{}
-</pre>
-</div></div><p>If <em>struts.validateOnly</em> is false the action and result 
are executed. In this case <em>jsonActionRedirect</em> result is very useful. 
It creates a JSON response in the form:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: javascript; gutter: false; theme: Default" 
style="font-size:12px;">{"location": "&lt;url to be loaded next&gt;"}
-</pre>
-</div></div><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Remember to set 
struts.enableJSONValidation=true in the request to enable AJAX 
validation</p></div></div><h2 
id="AJAXValidation-JSONValidationInterceptorparameters">JSONValidationInterceptor
 parameters</h2><p>The following request parameters can be used to enable 
exposing validation errors:</p><ul style="list-style-type: 
square;"><li><strong>struts.enableJSONValidation</strong> - a request 
parameter&#160;must be set to <strong>true</strong>&#160;to use this 
interceptor</li><li><strong>struts.validateOnly</strong> - If the request has 
this parameter, execution will return after validation (action won't be 
executed). If <strong>struts.validateOnly</strong>&#160;is set to false you may 
want to use <a shape="rect" class="createlink" href="https://cwiki
 
.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=JSONActionRedirectResult&amp;linkCreation=true&amp;fromPageId=13850">JSONActionRedirectResult</a></li><li><strong>struts.JSONValidation.no.encoding</strong>
 - If the request has this parameter set to<strong> true,</strong> the 
character encoding will <strong>NOT</strong> be set on the response - is needed 
in portlet environment</li></ul><p>You can override names of these parameters 
by specifying the following parameters when setting up a stack:</p><ul 
style="list-style-type: square;"><li><strong>validateJsonParam</strong>&#160;- 
to override name 
of&#160;<strong>struts.enableJSONValidation</strong><strong><br 
clear="none"></strong></li><li><strong>validateOnlyParam</strong> - to override 
name of 
<strong>struts.validateOnly</strong></li><li><strong>noEncodingSetParam</strong>
 - to override name 
of&#160;<strong>struts.JSONValidation.no.encoding</strong></li><li><strong>validationFailedStatus</strong>
 - status to be se
 t on response when there are validation errors, by default 
<strong>400</strong></li></ul><p><strong><br clear="none"></strong></p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">&#160;Parameters overriding is 
available since Struts 2.5.9</div></div><h2 
id="AJAXValidation-FlowchartofAJAXvalidation">Flow chart of AJAX 
validation</h2><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Some details are omitted, like 
results used.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-info
 rmation-macro-body"><p>As explained above: there is a case where form is 
submitted twice, one time as AJAX with validation only and another time as 
usual submit.</p></div></div><p><a shape="rect" 
href="ajax-validation.data/struts2-ajax-vali-flow.png?version=2&amp;modificationDate=1454052624000&amp;api=v2"
 data-linked-resource-id="61338002" data-linked-resource-version="2" 
data-linked-resource-type="attachment" 
data-linked-resource-default-alias="struts2-ajax-vali-flow.png" 
data-nice-type="Image" data-linked-resource-content-type="image/png" 
data-linked-resource-container-id="13850" 
data-linked-resource-container-version="47"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
src="ajax-validation.data/struts2-ajax-vali-flow.png"></span></a></p><p>&#160;</p></div>
+</plain-text-body><p>If the action implements the <em>ModelDrive</em> 
interface, "model." will be stripped from the field names in the returned JSON. 
If validation succeeds (and&#160;<em>struts.validateOnly</em> is true), an 
empty JSON string will be returned:</p><parameter 
ac:name="">JavaScript</parameter><plain-text-body>{}
+</plain-text-body><p>If <em>struts.validateOnly</em> is false the action and 
result are executed. In this case <em>jsonActionRedirect</em> result is very 
useful. It creates a JSON response in the form:</p><parameter 
ac:name="">JavaScript</parameter><plain-text-body>{"location": "&lt;url to be 
loaded next&gt;"}
+</plain-text-body><rich-text-body><p>Remember to set 
struts.enableJSONValidation=true in the request to enable AJAX 
validation</p></rich-text-body><h2 
id="AJAXValidation-JSONValidationInterceptorparameters">JSONValidationInterceptor
 parameters</h2><p>The following request parameters can be used to enable 
exposing validation errors:</p><ul style="list-style-type: 
square;"><li><strong>struts.enableJSONValidation</strong> - a request 
parameter&#160;must be set to <strong>true</strong>&#160;to use this 
interceptor</li><li><strong>struts.validateOnly</strong> - If the request has 
this parameter, execution will return after validation (action won't be 
executed). If <strong>struts.validateOnly</strong>&#160;is set to false you may 
want to use <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=JSONActionRedirectResult&amp;linkCreation=true&amp;fromPageId=13850";>JSONActionRedirectResult</a></li><li><strong>struts.JSONVal
 idation.no.encoding</strong> - If the request has this parameter set 
to<strong> true,</strong> the character encoding will <strong>NOT</strong> be 
set on the response - is needed in portlet environment</li></ul><p>You can 
override names of these parameters by specifying the following parameters when 
setting up a stack:</p><ul style="list-style-type: 
square;"><li><strong>validateJsonParam</strong>&#160;- to override name 
of&#160;<strong>struts.enableJSONValidation</strong><strong><br 
clear="none"></strong></li><li><strong>validateOnlyParam</strong> - to override 
name of 
<strong>struts.validateOnly</strong></li><li><strong>noEncodingSetParam</strong>
 - to override name 
of&#160;<strong>struts.JSONValidation.no.encoding</strong></li><li><strong>validationFailedStatus</strong>
 - status to be set on response when there are validation errors, by default 
<strong>400</strong></li></ul><p><strong><br 
clear="none"></strong></p><rich-text-body>&#160;Parameters overriding is 
available since Stru
 ts 2.5.9</rich-text-body><h2 
id="AJAXValidation-FlowchartofAJAXvalidation">Flow chart of AJAX 
validation</h2><parameter ac:name="">Client 
Validation</parameter><rich-text-body><p>Some details are omitted, like results 
used.</p></rich-text-body><parameter ac:name="">Client 
Validation</parameter><rich-text-body><p>As explained above: there is a case 
where form is submitted twice, one time as AJAX with validation only and 
another time as usual submit.</p></rich-text-body><p><a shape="rect" 
href="ajax-validation.data/struts2-ajax-vali-flow.png?version=2&amp;modificationDate=1454052624000&amp;api=v2"
 data-linked-resource-id="61338002" data-linked-resource-version="2" 
data-linked-resource-type="attachment" 
data-linked-resource-default-alias="struts2-ajax-vali-flow.png" 
data-nice-type="Image" data-linked-resource-content-type="image/png" 
data-linked-resource-container-id="13850" 
data-linked-resource-container-version="48"><span 
class="confluence-embedded-file-wrapper"><img class="confluenc
 e-embedded-image" 
src="ajax-validation.data/struts2-ajax-vali-flow.png"></span></a></p><p>&#160;</p></div>
         </div>
 
         

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/alias-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/alias-interceptor.html 
b/content/docs/alias-interceptor.html
index 6de478d..5138a6b 100644
--- a/content/docs/alias-interceptor.html
+++ b/content/docs/alias-interceptor.html
@@ -166,7 +166,7 @@ action this interceptor is applied to has a setter named 
<i>alias1</i>, <i>alias
 <h2 id="AliasInterceptor-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
     &lt;!-- The value for the foo parameter will be applied as if it were 
named bar --&gt;
     &lt;param name=&quot;aliases&quot;&gt;#{ &#39;foo&#39; : &#39;bar&#39; 
}&lt;/param&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/annotationworkflowinterceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/annotationworkflowinterceptor.html 
b/content/docs/annotationworkflowinterceptor.html
index 122fb70..8e1721f 100644
--- a/content/docs/annotationworkflowinterceptor.html
+++ b/content/docs/annotationworkflowinterceptor.html
@@ -154,7 +154,7 @@ After.</p>
 <h2 id="AnnotationWorkflowInterceptor-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
  public class BaseAnnotatedAction {
        protected String log = &quot;&quot;;
 
@@ -191,7 +191,7 @@ After.</p>
 </div></div>
 <p>Configure a stack in struts.xml that replaces the PrepareInterceptor with 
the AnnotationWorkflowInterceptor:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;interceptor-stack name="annotatedStack"&gt;
        &lt;interceptor-ref name="static-params"/&gt;
        &lt;interceptor-ref name="params"/&gt;
@@ -202,7 +202,7 @@ After.</p>
 </div></div>
 <p>Given an Action, AnnotatedAction, add a reference to the 
AnnotationWorkflowInterceptor interceptor.</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;action name="AnnotatedAction" class="com.examples.AnnotatedAction"&gt;
    &lt;interceptor-ref name="annotationWorkflow"/&gt;
    &lt;result name="success" 
type="freemarker"&gt;good_result.ftl&lt;/result&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/append.html
----------------------------------------------------------------------
diff --git a/content/docs/append.html b/content/docs/append.html
index eeb0f2b..db5571b 100644
--- a/content/docs/append.html
+++ b/content/docs/append.html
@@ -159,7 +159,7 @@ the following will be how the appended iterator entries 
will be arranged:</p>
 <h2 id="append-Example">Example</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 public class AppendIteratorTagAction extends ActionSupport {
 
  private List myList1;
@@ -194,7 +194,7 @@ public class AppendIteratorTagAction extends ActionSupport {
 ]]></script>
 </div></div>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;s:append var=&quot;myAppendIterator&quot;&gt;
      &lt;s:param value=&quot;%{myList1}&quot; /&gt;
      &lt;s:param value=&quot;%{myList2}&quot; /&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/basic-validation.html
----------------------------------------------------------------------
diff --git a/content/docs/basic-validation.html 
b/content/docs/basic-validation.html
index c72a41a..685cee5 100644
--- a/content/docs/basic-validation.html
+++ b/content/docs/basic-validation.html
@@ -34,20 +34,6 @@ under the License.
             color:                 #666;
         }
     </style>
-    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
-    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
-    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -139,109 +125,12 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Let's configure a basic validation 
workflow, step by step.</p><h2 id="BasicValidation-Step1">Step 1</h2><p>Create 
the input form.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-
-&lt;html&gt;
-&lt;head&gt;
-       &lt;title&gt;Struts2 Showcase - Validation - Basic&lt;/title&gt;
-       &lt;s:head/&gt;
-&lt;/head&gt;
-
-&lt;body&gt;
-
-&lt;div class=&quot;page-header&quot;&gt;
-       &lt;h1&gt;Basic validation Example&lt;/h1&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;container-fluid&quot;&gt;
-       &lt;div class=&quot;row&quot;&gt;
-               &lt;div class=&quot;col-md-12&quot;&gt;
-
-                       &lt;p&gt;
-                               &lt;b&gt;What is your favorite color?&lt;/b&gt;
-
-                       &lt;p/&gt;
-
-                       &lt;s:form method=&quot;post&quot;&gt;
-                               &lt;s:textfield label=&quot;Name&quot; 
name=&quot;name&quot;/&gt;
-                               &lt;s:textfield label=&quot;Age&quot; 
name=&quot;age&quot;/&gt;
-                               &lt;s:textfield label=&quot;Favorite 
color&quot; name=&quot;answer&quot;/&gt;
-                               &lt;s:submit cssClass=&quot;btn 
btn-primary&quot;/&gt;
-                       &lt;/s:form&gt;
-               &lt;/div&gt;
-       &lt;/div&gt;
-&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-]]></script>
-</div></div><h2 id="BasicValidation-Step2">Step 2</h2><p>Create the Action 
class.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-
-public class QuizAction extends ActionSupport {
-
-       private static final long serialVersionUID = -7505437345373234225L;
-
-       String name;
-       int age;
-       String answer;
-
-       public String getName() {
-               return name;
-       }
-
-       public void setName(String name) {
-               this.name = name;
-       }
-
-       public int getAge() {
-               return age;
-       }
-
-       public void setAge(int age) {
-               this.age = age;
-       }
-
-       public String getAnswer() {
-               return answer;
-       }
-
-       public void setAnswer(String answer) {
-               this.answer = answer;
-       }
-}
-
-]]></script>
-</div></div><h2 id="BasicValidation-Step3">Step 3</h2><p>Create the 
validators. The <code>validation.xml</code> format is either 
<code>&lt;ActionClassName&gt;-validation.xml</code> or 
<code>&lt;ActionClassName&gt;-&lt;ActionAliasName&gt;-validation.xml</code>.</p><div
 class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;!--
-    Add the following DOCTYPE declaration as first line of your 
XXX-validation.xml file:
-    &lt;!DOCTYPE validators PUBLIC &quot;-//Apache Struts//XWork Validator 
1.0.2//EN&quot; 
&quot;http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd&quot;&gt;
---&gt;
-&lt;validators&gt;
-    &lt;field name=&quot;name&quot;&gt;
-        &lt;field-validator type=&quot;requiredstring&quot;&gt;
-            &lt;message&gt;You must enter a name&lt;/message&gt;
-        &lt;/field-validator&gt;
-    &lt;/field&gt;
-    &lt;field name=&quot;age&quot;&gt;
-        &lt;field-validator type=&quot;int&quot;&gt;
-            &lt;param name=&quot;min&quot;&gt;13&lt;/param&gt;
-            &lt;param name=&quot;max&quot;&gt;19&lt;/param&gt;
-            &lt;message&gt;Only people ages 13 to 19 may take this 
quiz&lt;/message&gt;
-        &lt;/field-validator&gt;
-    &lt;/field&gt;
-&lt;/validators&gt;
-
-]]></script>
-</div></div><h2 id="BasicValidation-Step4">Step 4</h2><p>Make sure there is a 
result for "input" listed in the struts.xml for when the validation 
fails:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;action name="HelloWorld" 
class="tutorial.HelloWorld"&gt;
+            <div id="ConfluenceContent"><p>Let's configure a basic validation 
workflow, step by step.</p><h2 id="BasicValidation-Step1">Step 1</h2><p>Create 
the input 
form.<plain-text-body>{snippet:id=basicValidation|javadoc=false|lang=xml|url=struts2/apps/showcase/src/main/webapp/WEB-INF/validation/quiz-basic.jsp}</plain-text-body></p><h2
 id="BasicValidation-Step2">Step 2</h2><p>Create the Action 
class.<plain-text-body>{snippet:id=quizAction|javadoc=false|lang=java|url=struts2/apps/showcase/src/main/java/org/apache/struts2/showcase/validation/QuizAction.java}</plain-text-body></p><h2
 id="BasicValidation-Step3">Step 3</h2><p>Create the validators. The 
<code>validation.xml</code> format is either 
<code>&lt;ActionClassName&gt;-validation.xml</code> or 
<code>&lt;ActionClassName&gt;-&lt;ActionAliasName&gt;-validation.xml</code>.<plain-text-body>{snippet:id=quizValidators|javadoc=false|lang=xml|url=struts2/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/QuizAction
 -validation.xml}</plain-text-body></p><h2 id="BasicValidation-Step4">Step 
4</h2><p>Make sure there is a result for "input" listed in the struts.xml for 
when the validation fails:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;action name="HelloWorld" 
class="tutorial.HelloWorld"&gt;
 &lt;result name="success"&gt;/tutorial/createconfirm.jsp&lt;/result&gt;
 &lt;result name="error"&gt;/tutorial/error.jsp&lt;/result&gt;
 &lt;result name="input"&gt;/tutorial/create.jsp&lt;/result&gt;
 &lt;/action&gt;
-</pre>
-</div></div><p>If you don't have this, you'll get a: "No result defined for 
action xxx.xxx.tutorial.HellowWorld and result input" error</p></div>
+</plain-text-body><p>If you don't have this, you'll get a: "No result defined 
for action xxx.xxx.tutorial.HellowWorld and result input" error</p></div>
         </div>
 
         

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/bean.html
----------------------------------------------------------------------
diff --git a/content/docs/bean.html b/content/docs/bean.html
index 24dbed6..d0ca429 100644
--- a/content/docs/bean.html
+++ b/content/docs/bean.html
@@ -157,7 +157,7 @@ stack's Context.</p>
 <h1 id="bean-Examples">Examples</h1>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;-- in freemarker form --&gt;
 [@s.bean name=&quot;org.apache.struts2.example.counter.SimpleCounter&quot; 
var=&quot;counter&quot;]
   [s:param name=&quot;foo&quot; value=&quot;BAR&quot;/]

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/before-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/before-annotation.html 
b/content/docs/before-annotation.html
index 5b03a61..3de59fc 100644
--- a/content/docs/before-annotation.html
+++ b/content/docs/before-annotation.html
@@ -156,7 +156,7 @@ under the License.
 <h2 id="BeforeAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 public class SampleAction extends ActionSupport {
 
  @Before

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/beforeresult-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/beforeresult-annotation.html 
b/content/docs/beforeresult-annotation.html
index fe44a7e..eaa2a8a 100644
--- a/content/docs/beforeresult-annotation.html
+++ b/content/docs/beforeresult-annotation.html
@@ -156,7 +156,7 @@ under the License.
 <h2 id="BeforeResultAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 public class SampleAction extends ActionSupport {
 
  @BeforeResult

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/bind.html
----------------------------------------------------------------------
diff --git a/content/docs/bind.html b/content/docs/bind.html
index 6554e61..8b426f3 100644
--- a/content/docs/bind.html
+++ b/content/docs/bind.html
@@ -34,20 +34,6 @@ under the License.
             color:                 #666;
         }
     </style>
-    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
-    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
-    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -139,23 +125,16 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent">
-<div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>To use this tag:</p>
-<ul><li>Add: <em>&lt;%@ taglib prefix="sx" uri="/struts-dojo-tags" %&gt;</em> 
to your page.</li><li>The <a shape="rect" href="dojo-head.html">head</a> tag 
must be included on the page, which can be configured for performance or 
debugging purposes.</li><li>If the parseContent parameter for the <a 
shape="rect" href="dojo-head.html">head</a> tag is false (it is false by 
default), then the <strong>id</strong> tag is required.</li></ul>
-</div></div>
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Additional Examples</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>For more examples see <a shape="rect" 
href="ajax-and-javascript-recipes.html">Ajax and JavaScript 
Recipes</a></p></div></div>
+            <div id="ConfluenceContent"><parameter ac:name=""><a shape="rect" 
href="ajax-common-header.html">ajax common header</a></parameter><parameter 
ac:name="nopanel">true</parameter>
 
 <h2 id="bind-Description">Description</h2>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<plain-text-body>{snippet:id=javadoc|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body>
 
 <p>There's a bug in  IE6/IE7 which makes impossible to use the target's 
attribute with a parent Div, because such Div's content's are overwritten with 
the tag's <em>loadingText</em>. Resulting in an "undefined" message in the 
content's, instead of the result of the request.</p>
 
 <p>One possible alternative is to set <em>showLoadingText="false"</em> and set 
the indicator attribute to an element showing the desired loading text or image 
(outside the div).</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;img id="loadingImage" src="images/loadingAnimation.gif" 
style="display:none"/&gt;
 &lt;s:div id="parentDiv"&gt;
     &lt;s:form action="actionName"&gt;
@@ -163,25 +142,24 @@ under the License.
         &lt;sx:bind sources="btn" events="onclick" targets="parentDiv" 
showLoadingText="false" indicator="loadingImage"/&gt;
     &lt;/s:form&gt;
 &lt;/s:div&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <h2 id="bind-Parameters">Parameters</h2>
-<p><table width="100%"><tr><td colspan="6" rowspan="1"><h4>Dynamic Attributes 
Allowed:</h4> false</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">afterNotifyTopics</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="t
 op">Comma delimmited list of topics that will published after the request(if 
the request succeeds)</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">ajaxAfterValidation</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">Make an asynchronous request if validation succeeds. Only valid is 
'validate' is 'true'</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">beforeNotifyTopics</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">Comma delim
 mited list of topics that will published before the request</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">errorNotifyTopics</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">Comma delimmited list of topics that will published after the 
request(if the request fails)</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">errorText</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 text to display to the user if the is an error fetching the
  content</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">events</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">Comma delimited list of event names to attach to</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">executeScripts</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">Javascript code in the fetched content will be 
executed</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">formFilter</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">Function name used to filter the fields of the 
form.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">formId</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">Form id whose fields will be serialized and passed as 
parameters</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">handler</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td al
 ign="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">Javascript function name that will make the 
request</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">highlightColor</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">none</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">Color used to perform a highlight effect on the elements specified 
in the 'targets' attribute</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">highlightDuration</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">2000</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</t
 d><td align="left" colspan="1" rowspan="1" valign="top">Integer</td><td 
align="left" colspan="1" rowspan="1" valign="top">Duration of highlight effect 
in milliseconds. Only valid if 'highlightColor' attribute is 
set</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">href</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 URL to call to obtain the content. Note: If used with ajax 
context, the value must be set as an url tag value.</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" colspa
 n="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">The id to use for the element</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">indicator</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">Id of element that will be shown while making 
request</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">listenTopics</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">Topic that will trigger the remote call<
 /td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">loadingText</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Loading...</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">Text to be shown while content is being fetched</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">notifyTopics</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">Comma delimmited list of topics that will published before and 
after the request, and on errors</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="to
 p">separateScripts</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">true</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">Run scripts in a separate scope, unique for each 
tag</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">showErrorTransportText</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">true</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">Set whether errors will be shown or not</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">showLoadingText</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">Show loading text on targets</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">sources</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">Comma delimited list of ids of the elements to attach 
to</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">targets</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">Comma delimited list of ids of the elements whose content will be 
updated</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">transport</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">XMLHTTPTransport</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">Transport used by Dojo to make the request</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">validate</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">Perform Ajax validation. 'ajaxValidation' interceptor must be applied 
to action</td></tr></table></p>
+<plain-text-body>{snippet:id=tagattributes|javadoc=false|url=struts2-tags/ajax/bind.html}</plain-text-body>
 
 <h2 id="bind-Examples">Examples</h2>
 <p>Without attaching to an event, listening to a topic (used to make an Ajax 
call):</p>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<plain-text-body>{snippet:id=example0|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body>
 <p>Attached to event 'onclick' on submit button:</p>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<plain-text-body>{snippet:id=example1|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body>
 <p>Submit form:</p>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<plain-text-body>{snippet:id=example2|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body>
 <p>Using beforeNotifyTopics:</p>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<plain-text-body>{snippet:id=example4|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body>
 <p>Using afterNotifyTopics and highlight:</p>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<plain-text-body>{snippet:id=example5|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body>
 <p>Using errorNotifyTopics and indicator:</p>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<plain-text-body>{snippet:id=example6|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Bind.java}</plain-text-body></div>
         </div>
 
         

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/chain-result.html
----------------------------------------------------------------------
diff --git a/content/docs/chain-result.html b/content/docs/chain-result.html
index 786434c..b00f0aa 100644
--- a/content/docs/chain-result.html
+++ b/content/docs/chain-result.html
@@ -156,7 +156,7 @@ actions that could be chained to</li></ul><p></p>
 <h1 id="ChainResult-Examples">Examples</h1>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;package name=&quot;public&quot; extends=&quot;struts-default&quot;&gt;
     &lt;!-- Chain creatAccount to login, using the default parameter --&gt;
     &lt;action name=&quot;createAccount&quot; class=&quot;...&quot;&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/checkbox.html
----------------------------------------------------------------------
diff --git a/content/docs/checkbox.html b/content/docs/checkbox.html
index 12c6205..71145e2 100644
--- a/content/docs/checkbox.html
+++ b/content/docs/checkbox.html
@@ -152,7 +152,7 @@ under the License.
 <h2 id="checkbox-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 JSP:
 &lt;s:checkbox label=&quot;checkbox test&quot; name=&quot;checkboxField1&quot; 
value=&quot;aBoolean&quot; fieldValue=&quot;true&quot;/&gt;
 

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/checkboxlist.html
----------------------------------------------------------------------
diff --git a/content/docs/checkboxlist.html b/content/docs/checkboxlist.html
index 9301f57..b831115 100644
--- a/content/docs/checkboxlist.html
+++ b/content/docs/checkboxlist.html
@@ -160,7 +160,7 @@ Everything else will result in listkey and listvalue to be 
null and not used.
 <h2 id="checkboxlist-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;s:checkboxlist name=&quot;foo&quot; list=&quot;bar&quot;/&gt;
 ]]></script>
 </div></div></div>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/client-validation.html
----------------------------------------------------------------------
diff --git a/content/docs/client-validation.html 
b/content/docs/client-validation.html
index 74fd170..73e71b3 100644
--- a/content/docs/client-validation.html
+++ b/content/docs/client-validation.html
@@ -34,20 +34,6 @@ under the License.
             color:                 #666;
         }
     </style>
-    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
-    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
-    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -139,115 +125,19 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Let's create a Client-Side 
validation workflow, step by step.</p><p><img class="emoticon 
emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> The <code>validate</code> 
attribute is set to <code>true</code>.</p><p><img class="emoticon 
emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> Some themes do not support 
client-side validation.</p><h2 id="ClientValidation-Step1">Step 1</h2><p>Create 
the form.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-
-&lt;html&gt;
-&lt;head&gt;
-       &lt;title&gt;Struts2 Showcase - Validation - Basic&lt;/title&gt;
-       &lt;s:head/&gt;
-&lt;/head&gt;
-
-&lt;body&gt;
-
-&lt;div class=&quot;page-header&quot;&gt;
-       &lt;h1&gt;Basic validation Example&lt;/h1&gt;
-&lt;/div&gt;
-
-&lt;div class=&quot;container-fluid&quot;&gt;
-       &lt;div class=&quot;row&quot;&gt;
-               &lt;div class=&quot;col-md-12&quot;&gt;
-
-
-                       &lt;s:form method=&quot;post&quot; 
validate=&quot;true&quot;&gt;
-                               &lt;s:textfield label=&quot;Name&quot; 
name=&quot;name&quot;/&gt;
-                               &lt;s:textfield label=&quot;Age&quot; 
name=&quot;age&quot;/&gt;
-                               &lt;s:textfield label=&quot;Favorite 
color&quot; name=&quot;answer&quot;/&gt;
-                               &lt;s:submit cssClass=&quot;btn 
btn-primary&quot;/&gt;
-                       &lt;/s:form&gt;
-               &lt;/div&gt;
-       &lt;/div&gt;
-&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-
-]]></script>
-</div></div><img class="emoticon emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> This case uses the default 
xhtml theme, so the <code>&lt;s:head &gt;</code> tag is used to link a style 
sheet.<h2 id="ClientValidation-Step2">Step 2</h2><p>Create the Action 
class.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-
-public class QuizAction extends ActionSupport {
-
-       private static final long serialVersionUID = -7505437345373234225L;
-
-       String name;
-       int age;
-       String answer;
-
-       public String getName() {
-               return name;
-       }
-
-       public void setName(String name) {
-               this.name = name;
-       }
-
-       public int getAge() {
-               return age;
-       }
-
-       public void setAge(int age) {
-               this.age = age;
-       }
-
-       public String getAnswer() {
-               return answer;
-       }
-
-       public void setAnswer(String answer) {
-               this.answer = answer;
-       }
-}
-
-]]></script>
-</div></div><h3 id="ClientValidation-Step3">Step 3</h3><p>Create the 
<code>validation.xml</code> to configure the validators to be used.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;!--
-    Add the following DOCTYPE declaration as first line of your 
XXX-validation.xml file:
-    &lt;!DOCTYPE validators PUBLIC &quot;-//Apache Struts//XWork Validator 
1.0.2//EN&quot; 
&quot;http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd&quot;&gt;
---&gt;
-&lt;validators&gt;
-    &lt;field name=&quot;name&quot;&gt;
-        &lt;field-validator type=&quot;requiredstring&quot;&gt;
-            &lt;message&gt;You must enter a name&lt;/message&gt;
-        &lt;/field-validator&gt;
-    &lt;/field&gt;
-    &lt;field name=&quot;age&quot;&gt;
-        &lt;field-validator type=&quot;int&quot;&gt;
-            &lt;param name=&quot;min&quot;&gt;13&lt;/param&gt;
-            &lt;param name=&quot;max&quot;&gt;19&lt;/param&gt;
-            &lt;message&gt;Only people ages 13 to 19 may take this 
quiz&lt;/message&gt;
-        &lt;/field-validator&gt;
-    &lt;/field&gt;
-&lt;/validators&gt;
-
-]]></script>
-</div></div><h3 id="ClientValidation-ActionandNamespace">Action and 
Namespace</h3><p>A correct action and namespace attributes must be provided to 
the &lt;s:form&gt; tag. For example, if the action named "quizClient" is 
defined in the "/validation" namespace, the form must be configured as:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;s:form method="post" validate="true" 
action="quizClient" namespace="/validation"&gt;
+            <div id="ConfluenceContent"><p>Let's create a Client-Side 
validation workflow, step by step.</p><p><img class="emoticon 
emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> The <code>validate</code> 
attribute is set to <code>true</code>.</p><p><img class="emoticon 
emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> Some themes do not support 
client-side validation.</p><h2 id="ClientValidation-Step1">Step 1</h2><p>Create 
the 
form.<plain-text-body>{snippet:id=clientValidation|lang=xml|javadoc=false|url=struts2/apps/showcase/src/main/webapp/WEB-INF/validation/quiz-client.jsp}</plain-text-body><img
 class="emoticon emoticon-information" src="https://cwiki.apache.org/conf
 
luence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/information.png"
 data-emoticon-name="information" alt="(info)"> This case uses the default 
xhtml theme, so the <code>&lt;s:head &gt;</code> tag is used to link a style 
sheet.</p><h2 id="ClientValidation-Step2">Step 2</h2><p>Create the Action 
class.<plain-text-body>{snippet:id=quizAction|javadoc=false|lang=java|url=struts2/apps/showcase/src/main/java/org/apache/struts2/showcase/validation/QuizAction.java}</plain-text-body></p><h3
 id="ClientValidation-Step3">Step 3</h3><p>Create the 
<code>validation.xml</code> to configure the validators to be 
used.<plain-text-body>{snippet:id=quizValidators|javadoc=false|lang=xml|url=struts2/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/QuizAction-validation.xml}</plain-text-body></p><h3
 id="ClientValidation-ActionandNamespace">Action and Namespace</h3><p>A correct 
action and namespace attributes must be provided to the &lt;s:form&gt; tag
 . For example, if the action named "quizClient" is defined in the 
"/validation" namespace, the form must be configured as:</p><parameter 
ac:name="">XML</parameter><plain-text-body>&lt;s:form method="post" 
validate="true" action="quizClient" namespace="/validation"&gt;
    &lt;s:textfield label="Name" name="name"/&gt;
    &lt;s:textfield label="Age" name="age"/&gt;
    &lt;s:textfield label="Favorite color" name="answer"/&gt;
    &lt;s:submit/&gt;
 &lt;/s:form&gt; 
-</pre>
-</div></div><p>While the following will "work" in the sense that the form will 
function correctly, <strong>client-side validation will not</strong>. That is 
because Struts must know the exact namespace and action (rather than a URL) to 
properly support validation.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;s:form method="post" validate="true" 
action="/validation/quizClient.action"&gt;
+</plain-text-body><p>While the following will "work" in the sense that the 
form will function correctly, <strong>client-side validation will not</strong>. 
That is because Struts must know the exact namespace and action (rather than a 
URL) to properly support validation.</p><parameter 
ac:name="">XML</parameter><plain-text-body>&lt;s:form method="post" 
validate="true" action="/validation/quizClient.action"&gt;
    &lt;s:textfield label="Name" name="name"/&gt;
    &lt;s:textfield label="Age" name="age"/&gt;
    &lt;s:textfield label="Favorite color" name="answer"/&gt;
    &lt;s:submit/&gt;
 &lt;/s:form&gt; 
-</pre>
-</div></div></div>
+</plain-text-body></div>
         </div>
 
         

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/combobox.html
----------------------------------------------------------------------
diff --git a/content/docs/combobox.html b/content/docs/combobox.html
index 55a5e99..edc2f56 100644
--- a/content/docs/combobox.html
+++ b/content/docs/combobox.html
@@ -169,7 +169,7 @@ out the text field.
 <h2 id="combobox-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 JSP:
 &lt;-- Example One --&gt;
 &lt;s:bean name=&quot;struts.util.Counter&quot; var=&quot;year&quot;&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/component.html
----------------------------------------------------------------------
diff --git a/content/docs/component.html b/content/docs/component.html
index 3df5f0a..de011e1 100644
--- a/content/docs/component.html
+++ b/content/docs/component.html
@@ -196,7 +196,7 @@ could not be picked up from the classpath.</p>
 <h2 id="component-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;p&gt;
 JSP
 &lt;/p&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/conditionalvisitor-validator.html
----------------------------------------------------------------------
diff --git a/content/docs/conditionalvisitor-validator.html 
b/content/docs/conditionalvisitor-validator.html
index 8803cc6..9c5d4f8 100644
--- a/content/docs/conditionalvisitor-validator.html
+++ b/content/docs/conditionalvisitor-validator.html
@@ -148,7 +148,7 @@ only if the expression will evaluate to true.</p>
 
 <h1 id="conditionalvisitorvalidator-Examples">Examples</h1>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;field name=&quot;colleaguePosition&quot;&gt;
     &lt;field-validator type=&quot;conditionalvisitor&quot;&gt;
         &lt;param name=&quot;expression&quot;&gt;reason == &#39;colleague&#39; 
and colleaguePositionID == &#39;OTHER&#39;&lt;/param&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/conversion-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/conversion-annotation.html 
b/content/docs/conversion-annotation.html
index 020ae83..ed3c8e1 100644
--- a/content/docs/conversion-annotation.html
+++ b/content/docs/conversion-annotation.html
@@ -152,7 +152,7 @@ under the License.
 <h2 id="ConversionAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 @Conversion(
     conversions = {
          // key must be the name of a property for which converter should be 
used

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/conversion-error-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/conversion-error-interceptor.html 
b/content/docs/conversion-error-interceptor.html
index 2675c9e..2657e7d 100644
--- a/content/docs/conversion-error-interceptor.html
+++ b/content/docs/conversion-error-interceptor.html
@@ -184,7 +184,7 @@ There are no known extension points for this interceptor.
 <h2 id="ConversionErrorInterceptor-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
     &lt;interceptor-ref name=&quot;params&quot;/&gt;
     &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/conversion-validator.html
----------------------------------------------------------------------
diff --git a/content/docs/conversion-validator.html 
b/content/docs/conversion-validator.html
index 8215ab5..1b39d6f 100644
--- a/content/docs/conversion-validator.html
+++ b/content/docs/conversion-validator.html
@@ -148,7 +148,7 @@ under the License.
 
 <h1 id="conversionvalidator-Examples">Examples</h1>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;pre&gt;
     &lt;!-- Plain Validator Syntax --&gt;
     &lt;validator type=&quot;conversion&quot;&gt;
@@ -183,7 +183,7 @@ upon conversion error.
 </p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;!-- myJspPage.jsp --&gt;
 &lt;ww:form action=&quot;someAction&quot; method=&quot;POST&quot;&gt;
@@ -198,7 +198,7 @@ upon conversion error.
 ]]></script>
 </div></div>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;!-- xwork.xml --&gt;
 &lt;xwork&gt;
@@ -218,7 +218,7 @@ upon conversion error.
 ]]></script>
 </div></div>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;!-- MyActionSupport.java --&gt;
 public class MyActionSupport extends ActionSupport {
@@ -233,7 +233,7 @@ public class MyActionSupport extends ActionSupport {
 ]]></script>
 </div></div>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;!-- MyActionSupport-someAction-validation.xml --&gt;
 &lt;validators&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/conversionerrorfieldvalidator-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/conversionerrorfieldvalidator-annotation.html 
b/content/docs/conversionerrorfieldvalidator-annotation.html
index 6a68e94..bc3a17c 100644
--- a/content/docs/conversionerrorfieldvalidator-annotation.html
+++ b/content/docs/conversionerrorfieldvalidator-annotation.html
@@ -153,7 +153,7 @@ See <a shape="rect" 
href="https://struts.apache.org/docs/type-conversion.html#Ty
 <h2 id="ConversionErrorFieldValidatorAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 @ConversionErrorFieldValidator(message = &quot;Default message&quot;, key = 
&quot;i18n.key&quot;, shortCircuit = true)
 ]]></script>
 </div></div></div>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/cookie-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/cookie-interceptor.html 
b/content/docs/cookie-interceptor.html
index 05618e0..cf61c9f 100644
--- a/content/docs/cookie-interceptor.html
+++ b/content/docs/cookie-interceptor.html
@@ -200,7 +200,7 @@ of filtered cookies set into it.
 
 <p>Examples</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;!--
   This example will inject cookies named either &#39;cookie1&#39; or 
&#39;cookie2&#39; whose

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/cookieprovider-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/cookieprovider-interceptor.html 
b/content/docs/cookieprovider-interceptor.html
index a95551a..0bde2a5 100644
--- a/content/docs/cookieprovider-interceptor.html
+++ b/content/docs/cookieprovider-interceptor.html
@@ -154,7 +154,7 @@ You must reference this interceptor in your default stack 
or in action's stack,
 
 <p>Examples</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;action ... &gt;
   &lt;interceptor-ref name=&quot;defaultStack&quot;/&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/create-session-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/create-session-interceptor.html 
b/content/docs/create-session-interceptor.html
index ea22a66..e5ed146 100644
--- a/content/docs/create-session-interceptor.html
+++ b/content/docs/create-session-interceptor.html
@@ -165,7 +165,7 @@ the response to the client immediately.
 <h2 id="CreateSessionInterceptor-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
     &lt;interceptor-ref name=&quot;createSession&quot;/&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/createifnull-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/createifnull-annotation.html 
b/content/docs/createifnull-annotation.html
index 9e9c233..ebeb8f5 100644
--- a/content/docs/createifnull-annotation.html
+++ b/content/docs/createifnull-annotation.html
@@ -152,7 +152,7 @@ under the License.
 <h2 id="CreateIfNullAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 @CreateIfNull( value = true )
 private List&lt;User&gt; users;
 ]]></script>

Reply via email to