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 2015/08/25 09:57:35 UTC

svn commit: r963017 [2/2] - /websites/production/struts/content/docs/

Modified: websites/production/struts/content/docs/struts-2-maven-archetypes.html
==============================================================================
--- websites/production/struts/content/docs/struts-2-maven-archetypes.html (original)
+++ websites/production/struts/content/docs/struts-2-maven-archetypes.html Tue Aug 25 07:57:34 2015
@@ -143,11 +143,11 @@ under the License.
 <p><strong>Contents</strong></p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440486563546 {padding: 0px;}
-div.rbtoc1440486563546 ul {list-style: none;margin-left: 0px;padding-left: 1em;}
-div.rbtoc1440486563546 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440489276784 {padding: 0px;}
+div.rbtoc1440489276784 ul {list-style: none;margin-left: 0px;padding-left: 1em;}
+div.rbtoc1440489276784 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440486563546">
+/*]]>*/</style><div class="toc-macro rbtoc1440489276784">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#Struts2MavenArchetypes-Quickstart">Quickstart</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#Struts2MavenArchetypes-AvailableArchetypes">Available Archetypes</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">2.1</span> <a shape="rect" href="#Struts2MavenArchetypes-TheBlankConventionArchetype(struts2-archetype-convention)">The Blank Convention Archetype (struts2-archetype-convention)</a></li><li><span class="TOCOutline">2.2</span> <a shape="rect" href="#Struts2MavenArchetypes-TheBlankArchetype(struts2-archetype-blank)">The Blank Archetype (struts2-archetype-blank)</a></li><li><span class="TOCOutline">2.3</span> <a shape="rect" href="#Struts2MavenArchetypes-TheStarterArchetype(struts2-archetype-starter)">The Starter Archetype (struts2-archetype-starter)</a></li><li><span class="TOCOutline">2.4</span> <a shape="rect" href="#Struts2MavenArchetypes-TheAngularJSArchetype(struts2-archetype-angularjs)">The AngularJS Archetype (struts2-archetype-angularjs)</a></li><li><span class="TOCOutline">2.5</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePortletBlankArchetype(struts2-archetype-portlet)">The Portlet Blank Archetype (struts2-ar
 chetype-portlet)</a></li><li><span class="TOCOutline">2.6</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePortletDatabaseArchetype(struts2-archetype-dbportlet)">The Portlet Database Archetype (struts2-archetype-dbportlet)</a></li><li><span class="TOCOutline">2.7</span> <a shape="rect" href="#Struts2MavenArchetypes-ThePluginArchetype(struts2-archetype-plugin)">The Plugin Archetype (struts2-archetype-plugin)</a></li></ul>
 </li><li><span class="TOCOutline">3</span> <a shape="rect" href="#Struts2MavenArchetypes-CreatinganApplicationUsingaMavenArchetype">Creating an Application Using a Maven Archetype</a>

Modified: websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html
==============================================================================
--- websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html (original)
+++ websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html Tue Aug 25 07:57:34 2015
@@ -145,11 +145,11 @@ under the License.
 <div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Following this tutorial verbatim will require use of a Struts 2 deployment greater than 2.0.3</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440486429793 {padding: 0px;}
-div.rbtoc1440486429793 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1440486429793 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440489150697 {padding: 0px;}
+div.rbtoc1440489150697 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440489150697 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440486429793">
+/*]]>*/</style><div class="toc-macro rbtoc1440489150697">
 <ul class="toc-indentation"><li><a shape="rect" href="#Struts2+Spring2+JPA+AJAX-Prerequisites">Prerequisites</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Struts2+Spring2+JPA+AJAX-Tomcat">Tomcat</a></li><li><a shape="rect" href="#Struts2+Spring2+JPA+AJAX-MySql">MySql</a></li></ul>
 </li><li><a shape="rect" href="#Struts2+Spring2+JPA+AJAX-Getthecode">Get the code</a>

Modified: websites/production/struts/content/docs/struts-next.html
==============================================================================
--- websites/production/struts/content/docs/struts-next.html (original)
+++ websites/production/struts/content/docs/struts-next.html Tue Aug 25 07:57:34 2015
@@ -125,12 +125,12 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1440486666365{padding:0px;}div.rbtoc1440486666365ul{list-style:disc;margin-left:0px;}div.rbtoc1440486666365li{margin-left:0px;padding-left:0px;}/*]]&gt;*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440486666365 {padding: 0px;}
-div.rbtoc1440486666365 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440486666365 li {margin-left: 0px;padding-left: 0px;}
+            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1440489345560{padding:0px;}div.rbtoc1440489345560ul{list-style:disc;margin-left:0px;}div.rbtoc1440489345560li{margin-left:0px;padding-left:0px;}/*]]&gt;*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style type="text/css">/*<![CDATA[*/
+div.rbtoc1440489345560 {padding: 0px;}
+div.rbtoc1440489345560 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1440489345560 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></h3><div class="toc-macro rbtoc1440486666365">
+/*]]>*/</style></h3><div class="toc-macro rbtoc1440489345560">
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-"></a></li></ul>
 <ul><li><a shape="rect" href="#StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</a></li><li><a shape="rect" href="#StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</a></li><li><a shape="rect" href="#StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</a></li></ul>

Modified: websites/production/struts/content/docs/tiles-2-plugin.html
==============================================================================
--- websites/production/struts/content/docs/tiles-2-plugin.html (original)
+++ websites/production/struts/content/docs/tiles-2-plugin.html Tue Aug 25 07:57:34 2015
@@ -138,63 +138,46 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Tiles is a templating framework designed to easily allow the creation of web application pages with a consistent look and feel. It can be used for both page decorating and componentization.</p></div></div>
-<p>The Tiles plugin allows actions to return Tiles pages.</p>
-
-<h2 id="Tiles2Plugin-Features">Features</h2>
-
-<ul><li>Supports Tiles in Freemarker, JSP, and Velocity</li></ul>
-
-
-<h2 id="Tiles2Plugin-Usage">Usage</h2>
-
-<p>The following steps must be taken in order to enable tiles support within your Struts2 application:</p>
-<ol><li>Include the struts-tiles-plugin as a dependency in your web application.  If you are using maven2, the dependency configuration will be similar to:
-<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;dependency&gt;
+            <div id="ConfluenceContent"><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Tiles is a templating framework designed to easily allow the creation of web application pages with a consistent look and feel. It can be used for both page decorating and componentization.</p></div></div><p>The Tiles pluginallows actions to return Tiles pages.</p><h2 id="Tiles2Plugin-Features">Features</h2><ul><li>Supports Tiles in Freemarker, JSP, and Velocity</li></ul><h2 id="Tiles2Plugin-Usage">Usage</h2><p>The following steps must be taken in order to enable tiles support within your Struts2 application:</p><ol><li><p>Include the struts-tiles-plugin as a dependency in your web application. If you are using maven2, the dependency configuration will be similar to:</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;dependency&gt;
   &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;
   &lt;artifactId&gt;struts2-tiles-plugin&lt;/artifactId&gt;
   &lt;version&gt;${version.tiles}&lt;/version&gt;
   &lt;scope&gt;compile&lt;/scope&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div></li><li>Register the tiles listener.  This listener will typically either be the standard tiles listener (org.apache.tiles.listener.TilesListener) or the Struts2 replacement (org.apache.struts2.tiles.TilesListener).  The latter provides tighter integration with Struts features such as freemarker integration.
-<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;listener&gt;
+</div></div></li><li><p>Register the tiles listener. This listener will typically either be the standard tiles listener (org.apache.tiles.listener.TilesListener) or the Struts2 replacement (org.apache.struts2.tiles.TilesListener). The latter provides tighter integration with Struts features such as freemarker integration.</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;listener&gt;
   &lt;listener-class&gt;org.apache.struts2.tiles.StrutsTilesListener&lt;/listener-class&gt;
 &lt;/listener&gt;
 </pre>
-</div></div></li><li>All package definitions which require tiles support must either extend the tiles-default package or must register the <a shape="rect" class="createlink" href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=Tiles+Result&amp;linkCreation=true&amp;fromPageId=27401">Tiles Result</a> type definition.
-<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;result-types&gt;
+</div></div></li><li><p>All package definitions which require tiles support must either extend the tiles-default package or must register the <a shape="rect" class="createlink" href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=Tiles+Result&amp;linkCreation=true&amp;fromPageId=27401">Tiles Result</a> type definition.</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;result-types&gt;
   &lt;result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/&gt;
 &lt;/result-types&gt;
 </pre>
-</div></div></li><li>Configure your actions to utilize a tiles definition:
-<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="sample" class="org.apache.struts2.tiles.example.SampleAction" &gt;
+</div></div></li><li><p>Configure your actions to utilize a tiles definition:</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="sample" class="org.apache.struts2.tiles.example.SampleAction" &gt;
   &lt;result name="success" type="tiles"&gt;tilesWorks&lt;/result&gt;
 &lt;/action&gt;
 </pre>
-</div></div></li></ol>
-
-
-<h2 id="Tiles2Plugin-Example">Example</h2>
-
-<p>This example shows a Tiles layout page using Struts tags:</p>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
-
-<h2 id="Tiles2Plugin-Settings">Settings</h2>
-
-<p>This plugin does inherits settings from <a shape="rect" class="external-link" href="http://tiles.apache.org/config-reference.html">Tiles configuration</a>.</p>
-
-<h2 id="Tiles2Plugin-Installation">Installation</h2>
-
-<p>This plugin can be installed by copying the plugin jar into your application's <code>/WEB-INF/lib</code> directory.  No other files need to be copied or created.</p></div>
+</div></div></li></ol><h2 id="Tiles2Plugin-Example">Example</h2><p>This example shows a Tiles layout page using Struts tags:</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;%@ taglib uri=&quot;http://tiles.apache.org/tags-tiles&quot; prefix=&quot;tiles&quot; %&gt;
+&lt;%@ taglib prefix=&quot;s&quot; uri=&quot;/struts-tags&quot; %&gt;
+
+&lt;%-- Show usage; Used in Header --%&gt;
+&lt;tiles:importAttribute name=&quot;title&quot; scope=&quot;request&quot;/&gt;
+&lt;html&gt;
+    &lt;head&gt;&lt;title&gt;Struts2 Showcase - &lt;tiles:getAsString name=&quot;title&quot;/&gt;&lt;/title&gt;&lt;/head&gt;
+&lt;body&gt;
+    &lt;tiles:insertAttribute name=&quot;header&quot;/&gt;
+    &lt;tiles:insertAttribute name=&quot;body&quot;/&gt;
+	&lt;p&gt;Notice that this is a layout made in JSP&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+]]></script>
+</div></div><h2 id="Tiles2Plugin-Settings">Settings</h2><p>This plugin does inherits settings from <a shape="rect" class="external-link" href="http://tiles.apache.org/config-reference.html">Tiles configuration</a>.</p><h2 id="Tiles2Plugin-Installation">Installation</h2><p>This plugin can be installed by copying the plugin jar into your application's <code>/WEB-INF/lib</code> directory. No other files need to be copied or created.</p></div>
         </div>
 
                     <div class="tabletitle">

Modified: websites/production/struts/content/docs/type-conversion.html
==============================================================================
--- websites/production/struts/content/docs/type-conversion.html (original)
+++ websites/production/struts/content/docs/type-conversion.html Tue Aug 25 07:57:34 2015
@@ -141,11 +141,11 @@ under the License.
             <div id="ConfluenceContent"><p>Routine type conversion in the framework is transparent. Generally, all you need to do is ensure that HTML inputs have names that can be used in <a shape="rect" href="ognl.html">OGNL</a> expressions. (HTML inputs are form elements and other GET/POST parameters.)</p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440486120543 {padding: 0px;}
-div.rbtoc1440486120543 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1440486120543 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440488825603 {padding: 0px;}
+div.rbtoc1440488825603 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440488825603 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440486120543">
+/*]]>*/</style><div class="toc-macro rbtoc1440488825603">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#TypeConversion-BuiltinTypeConversionSupport">Built in Type Conversion Support</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#TypeConversion-RelationshiptoParameterNames">Relationship to Parameter Names</a></li><li><span class="TOCOutline">3</span> <a shape="rect" href="#TypeConversion-CreatingaTypeConverter">Creating a Type Converter</a></li><li><span class="TOCOutline">4</span> <a shape="rect" href="#TypeConversion-ApplyingaTypeConvertertoanAction">Applying a Type Converter to an Action</a></li><li><span class="TOCOutline">5</span> <a shape="rect" href="#TypeConversion-ApplyingaTypeConvertertoabeanormodel">Applying a Type Converter to a bean or model</a></li><li><span class="TOCOutline">6</span> <a shape="rect" href="#TypeConversion-ApplyingaTypeConverterforanapplication">Applying a Type Converter for an application</a></li><li><span class="TOCOutline">7</span> <a shape="r
 ect" href="#TypeConversion-ASimpleExample">A Simple Example</a></li><li><span class="TOCOutline">8</span> <a shape="rect" href="#TypeConversion-AdvancedTypeConversion">Advanced Type Conversion</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">8.1</span> <a shape="rect" href="#TypeConversion-NullPropertyHandling">Null Property Handling</a></li><li><span class="TOCOutline">8.2</span> <a shape="rect" href="#TypeConversion-CollectionandMapSupport">Collection and Map Support</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">8.2.1</span> <a shape="rect" href="#TypeConversion-Indexingacollectionbyapropertyofthatcollection">Indexing a collection by a property of that collection</a></li></ul>

Modified: websites/production/struts/content/docs/using-field-validators.html
==============================================================================
--- websites/production/struts/content/docs/using-field-validators.html (original)
+++ websites/production/struts/content/docs/using-field-validators.html Tue Aug 25 07:57:34 2015
@@ -138,17 +138,40 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h2 id="UsingFieldValidators-Description">Description</h2>
-<p>The followings show a simple example using Struts' Field Validators</p>
-
-<h3 id="UsingFieldValidators-Step1">Step 1</h3>
-<p>Create the jsp page</p>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent"><h2 id="UsingFieldValidators-Description">Description</h2><p>The followings show a simple example using Struts' Field Validators</p><h3 id="UsingFieldValidators-Step1">Step 1</h3><p>Create the jsp page</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;h3&gt;All Field Errors Will Appear Here&lt;/h3&gt;
+&lt;s:fielderror/&gt;
+&lt;hr/&gt;
+
+&lt;h3&gt;Field Error due to &#39;Required String Validator Field&#39; Will Appear Here&lt;/h3&gt;
+&lt;s:fielderror&gt;
+    &lt;s:param value=&quot;%{&#39;requiredStringValidatorField&#39;}&quot;/&gt;
+&lt;/s:fielderror&gt;
+&lt;hr/&gt;
+
+&lt;h3&gt;Field Error due to &#39;String Length Validator Field&#39; Will Appear Here&lt;/h3&gt;
+&lt;s:fielderror&gt;
+    &lt;s:param&gt;stringLengthValidatorField&lt;/s:param&gt;
+&lt;/s:fielderror&gt;
+&lt;hr/&gt;
+
+&lt;s:form action=&quot;submitFieldValidatorsExamples&quot; namespace=&quot;/validation&quot; method=&quot;POST&quot; theme=&quot;xhtml&quot;&gt;
+    &lt;s:textfield label=&quot;Required Validator Field&quot; name=&quot;requiredValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;Required String Validator Field&quot; name=&quot;requiredStringValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;Integer Validator Field&quot; name=&quot;integerValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;Date Validator Field&quot; name=&quot;dateValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;Email Validator Field&quot; name=&quot;emailValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;URL Validator Field&quot; name=&quot;urlValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;String Length Validator Field&quot; name=&quot;stringLengthValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;Regex Validator Field&quot; name=&quot;regexValidatorField&quot;/&gt;
+    &lt;s:textfield label=&quot;Field Expression Validator Field&quot; name=&quot;fieldExpressionValidatorField&quot;/&gt;
+    &lt;s:submit label=&quot;Submit&quot; cssClass=&quot;btn btn-primary&quot;/&gt;
+&lt;/s:form&gt;
 
-<h3 id="UsingFieldValidators-Step2">Step 2</h3>
-<p>Create the action class</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+]]></script>
+</div></div><h3 id="UsingFieldValidators-Step2">Step 2</h3><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 FieldValidatorsExampleAction extends AbstractValidationActionSupport {
@@ -242,12 +265,7 @@ public class FieldValidatorsExampleActio
 
 /**
 ]]></script>
-</div></div>
-
-
-<h3 id="UsingFieldValidators-Step3">Step 3</h3>
-<p>Create the validator.xml.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="UsingFieldValidators-Step3">Step 3</h3><p>Create the validator.xml.</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;validators&gt;
@@ -309,10 +327,7 @@ public class FieldValidatorsExampleActio
 &lt;/validators&gt;
 
 ]]></script>
-</div></div>
-
-
-</div>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/using-freemarker-templates.html
==============================================================================
--- websites/production/struts/content/docs/using-freemarker-templates.html (original)
+++ websites/production/struts/content/docs/using-freemarker-templates.html Tue Aug 25 07:57:34 2015
@@ -141,11 +141,11 @@ under the License.
             <div id="ConfluenceContent"><p><a shape="rect" class="external-link" href="http://freemarker.sourceforge.net/" rel="nofollow">FreeMarker</a> is a Java-based template engine that is a great alternative to <a shape="rect" href="jsp.html">JSP</a>. FreeMarker is ideal for situations where your action results can possibly be loaded from outside a Servlet container. For example, if you wished to support plugins in your application, you might wish to use FreeMarker so that the plugins could provide the entire action class and view in a single jar that is loaded from the classloader.</p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440486450795 {padding: 0px;}
-div.rbtoc1440486450795 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440486450795 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440489164885 {padding: 0px;}
+div.rbtoc1440489164885 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1440489164885 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440486450795">
+/*]]>*/</style><div class="toc-macro rbtoc1440489164885">
 <ul class="toc-indentation"><li><a shape="rect" href="#UsingFreemarkerTemplates-Configureyouractiontousethe&quot;freemarker&quot;resulttype">Configure your action to use the "freemarker" result type</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-Usingproperties">Using properties</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-Servlet/JSPScopedObjects">Servlet / JSP Scoped Objects</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#UsingFreemarkerTemplates-ApplicationScopeAttribute">Application Scope Attribute</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-SessionScopeAttribute">Session Scope Attribute</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-RequestScopeAttribute">Request Scope Attribute</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-RequestParameter">Request Parameter</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-Contextparameter">Context parameter</a></li></ul>
 </li><li><a shape="rect" href="#UsingFreemarkerTemplates-TemplateLoading">Template Loading</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-VariableResolution">Variable Resolution</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-FreeMarkerconfiguration">FreeMarker configuration</a></li><li><a shape="rect" href="#UsingFreemarkerTemplates-Tags">Tags</a>

Modified: websites/production/struts/content/docs/using-non-field-validators.html
==============================================================================
--- websites/production/struts/content/docs/using-non-field-validators.html (original)
+++ websites/production/struts/content/docs/using-non-field-validators.html Tue Aug 25 07:57:34 2015
@@ -138,17 +138,20 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h2 id="UsingNonFieldValidators-Description">Description</h2>
-<p>The followings show a simple example using Webwork's Non Field Validators</p>
+            <div id="ConfluenceContent"><h2 id="UsingNonFieldValidators-Description">Description</h2><p>The followings show a simple example using Webwork's Non Field Validators</p><h3 id="UsingNonFieldValidators-Step1">Step 1</h3><p>Create the jsp page</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;s:actionerror/&gt;
 
-<h3 id="UsingNonFieldValidators-Step1">Step 1</h3>
-<p>Create the jsp page</p>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+&lt;s:form method=&quot;POST&quot; action=&quot;submitNonFieldValidatorsExamples&quot; namespace=&quot;/validation&quot;&gt;
+	&lt;s:textfield name=&quot;someText&quot; label=&quot;Some Text&quot;/&gt;
+	&lt;s:textfield name=&quot;someTextRetype&quot; label=&quot;Retype Some Text&quot;/&gt;
+	&lt;s:textfield name=&quot;someTextRetypeAgain&quot; label=&quot;Retype Some Text Again&quot;/&gt;
+	&lt;s:submit label=&quot;Submit&quot; cssClass=&quot;btn btn-primary&quot;/&gt;
+&lt;/s:form&gt;
 
 
-<h3 id="UsingNonFieldValidators-Step2">Step 2</h3>
-<p>Create the action class</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+]]></script>
+</div></div><h3 id="UsingNonFieldValidators-Step2">Step 2</h3><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 NonFieldValidatorsExampleAction extends AbstractValidationActionSupport {
@@ -186,12 +189,7 @@ public class NonFieldValidatorsExampleAc
 
 
 ]]></script>
-</div></div>
-
-
-<h3 id="UsingNonFieldValidators-Step3">Step 3</h3>
-<p>Create the validator.xml.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="UsingNonFieldValidators-Step3">Step 3</h3><p>Create the validator.xml.</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;validators&gt;
@@ -202,8 +200,7 @@ public class NonFieldValidatorsExampleAc
 &lt;/validators&gt;
 
 ]]></script>
-</div></div>
-</div>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/using-visitor-field-validator.html
==============================================================================
--- websites/production/struts/content/docs/using-visitor-field-validator.html (original)
+++ websites/production/struts/content/docs/using-visitor-field-validator.html Tue Aug 25 07:57:34 2015
@@ -138,17 +138,20 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h2 id="UsingVisitorFieldValidator-Description">Description</h2>
-<p>The followings show a simple example using Webwork's Field Validators</p>
+            <div id="ConfluenceContent"><h2 id="UsingVisitorFieldValidator-Description">Description</h2><p>The followings show a simple example using Webwork's Field Validators</p><h3 id="UsingVisitorFieldValidator-Step1">Step 1</h3><p>Create the jsp page.</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[
 
-<h3 id="UsingVisitorFieldValidator-Step1">Step 1</h3>
-<p>Create the jsp page.</p>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+&lt;s:fielderror cssClass=&quot;alert alert-error&quot;/&gt;
 
+&lt;s:form method=&quot;POST&quot; action=&quot;submitVisitorValidatorsExamples&quot; namespace=&quot;/validation&quot;&gt;
+	&lt;s:textfield name=&quot;user.name&quot; label=&quot;User Name&quot;/&gt;
+	&lt;s:textfield name=&quot;user.age&quot; label=&quot;User Age&quot;/&gt;
+	&lt;s:textfield name=&quot;user.birthday&quot; label=&quot;Birthday&quot;/&gt;
+	&lt;s:submit label=&quot;Submit&quot; cssClass=&quot;btn btn-primary&quot;/&gt;
+&lt;/s:form&gt;
 
-<h3 id="UsingVisitorFieldValidator-Step2">Step 2</h3>
-<p>Create the action class.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+]]></script>
+</div></div><h3 id="UsingVisitorFieldValidator-Step2">Step 2</h3><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 VisitorValidatorsExampleAction extends AbstractValidationActionSupport {
@@ -168,12 +171,7 @@ public class VisitorValidatorsExampleAct
 
 
 ]]></script>
-</div></div>
-
-
-<h3 id="UsingVisitorFieldValidator-Step3">Step 3</h3>
-<p>Create the validator.xml.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="UsingVisitorFieldValidator-Step3">Step 3</h3><p>Create the validator.xml.</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;validators&gt;
@@ -188,8 +186,7 @@ public class VisitorValidatorsExampleAct
 
 
 ]]></script>
-</div></div>
-</div>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/validation.html
==============================================================================
--- websites/production/struts/content/docs/validation.html (original)
+++ websites/production/struts/content/docs/validation.html Tue Aug 25 07:57:34 2015
@@ -139,18 +139,44 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>Struts 2 validation is configured via XML or annotations. Manual validation in the action is also possible, and may be combined with XML and annotation-driven validation.</p><p>Validation also depends on both the <code>validation</code> and <code>workflow</code> interceptors (both are included in the default interceptor stack). The <code>validation</code> interceptor does the validation itself and creates a list of field-specific errors. The <code>workflow</code> interceptor checks for the presence of validation errors: if any are found, it returns the "input" result (by default), taking the user back to the form which contained the validation errors.</p><p>If we're using the default settings <em>and</em> our action doesn't have an "input" result defined <em>and</em> there are validation (or, incidentally, type conversion) errors, we'll get an error message back telling us there's no "input" result defined for the action.</p><p><strong>CONT
 ENTS</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440486361978 {padding: 0px;}
-div.rbtoc1440486361978 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1440486361978 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440489032825 {padding: 0px;}
+div.rbtoc1440489032825 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440489032825 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1440486361978">
+/*]]>*/</style></p><div class="toc-macro rbtoc1440489032825">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#Validation-UsingAnnotations">Using Annotations</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#Validation-BeanValidation">Bean Validation</a></li><li><span class="TOCOutline">3</span> <a shape="rect" href="#Validation-Examples">Examples</a></li><li><span class="TOCOutline">4</span> <a shape="rect" href="#Validation-BundledValidators">Bundled Validators</a></li><li><span class="TOCOutline">5</span> <a shape="rect" href="#Validation-RegisteringValidators">Registering Validators</a></li><li><span class="TOCOutline">6</span> <a shape="rect" href="#Validation-TurningonValidation">Turning on Validation</a></li><li><span class="TOCOutline">7</span> <a shape="rect" href="#Validation-ValidatorScopes">Validator Scopes</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">7.1</span> <a shape="rect" href="#Validation-Notes">Notes</a></li></ul>
 </li><li><span class="TOCOutline">8</span> <a shape="rect" href="#Validation-DefiningValidationRules">Defining Validation Rules</a></li><li><span class="TOCOutline">9</span> <a shape="rect" href="#Validation-LocalizingandParameterizingMessages">Localizing and Parameterizing Messages</a></li><li><span class="TOCOutline">10</span> <a shape="rect" href="#Validation-ValidatorFlavor">Validator Flavor</a></li><li><span class="TOCOutline">11</span> <a shape="rect" href="#Validation-Non-FieldValidatorVsField-Validatorvalidatortypes">Non-Field Validator Vs Field-Validator</a></li><li><span class="TOCOutline">12</span> <a shape="rect" href="#Validation-Short-CircuitingValidator">Short-Circuiting Validator</a></li><li><span class="TOCOutline">13</span> <a shape="rect" href="#Validation-HowValidatorsofanActionareFound">How Validators of an Action are Found</a></li><li><span class="TOCOutline">14</span> <a shape="rect" href="#Validation-Writingcustomvalidators">Writing custom validators</a></li>
 <li><span class="TOCOutline">15</span> <a shape="rect" href="#Validation-Resources">Resources</a></li><li><span class="TOCOutline">16</span> <a shape="rect" href="#Validation-Next:">Next: Localization</a></li></ul>
-</div><h2 id="Validation-UsingAnnotations">Using Annotations</h2><p><a shape="rect" href="validation-annotation.html">Annotations</a> can be used as an alternative to XML for validation.</p><p>&#160;</p><h2 id="Validation-BeanValidation">Bean Validation</h2><p>With struts 2.5 comes the Bean Validation Plugin. That is an alternative to the classic struts validation described here. See the <a shape="rect" href="bean-validation-plugin.html">Plugin Page</a> for details.</p><h2 id="Validation-Examples">Examples</h2><p>In all examples given here, the validation message displayed is given in plain English - to internationalize the message, put the string in a properties file and use a property key instead, specified by the 'key' attribute. It will be looked up by the framework (see <a shape="rect" href="localization.html">Localization</a>).</p><ol><li><a shape="rect" href="basic-validation.html">Basic Validation</a></li><li><a shape="rect" href="client-validation.html">Client-side Validati
 on</a></li><li><a shape="rect" href="ajax-validation.html">AJAX Validation</a></li><li><a shape="rect" href="using-field-validators.html">Using Field Validators</a></li><li><a shape="rect" href="using-non-field-validators.html">Using Non Field Validators</a></li><li><a shape="rect" href="using-visitor-field-validator.html">Using Visitor Field Validator</a></li><li><a shape="rect" href="how-do-we-repopulate-controls-when-validation-fails.html">How do we repopulate controls when validation fails</a> (FAQ entry)</li></ol><h2 id="Validation-BundledValidators">Bundled Validators</h2><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Note</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using a Field Validator, Field Validator Syntax is <strong>ALWAYS</strong> preferable than using the Plain Validator Syntax as it facilitates grouping of fi
 eld-validators according to fields. This is very handy especially if a field needs to have many <code>field-validators</code> which is almost always the case.</p></div></div><ol><li><a shape="rect" href="conversion-validator.html">conversion validator</a></li><li><a shape="rect" href="date-validator.html">date validator</a></li><li><a shape="rect" href="double-validator.html">double validator</a></li><li><a shape="rect" href="email-validator.html">email validator</a></li><li><a shape="rect" href="expression-validator.html">expression validator</a></li><li><a shape="rect" href="fieldexpression-validator.html">fieldexpression validator</a></li><li><a shape="rect" href="int-validator.html">int validator</a></li><li><a shape="rect" href="regex-validator.html">regex validator</a></li><li><a shape="rect" href="required-validator.html">required validator</a></li><li><a shape="rect" href="requiredstring-validator.html">requiredstring validator</a></li><li><a shape="rect" href="short-validat
 or.html">short validator</a></li><li><a shape="rect" href="stringlength-validator.html">stringlength validator</a></li><li><a shape="rect" href="url-validator.html">url validator</a></li><li><a shape="rect" href="visitor-validator.html">visitor validator</a></li><li><a shape="rect" href="conditionalvisitor-validator.html">conditionalvisitor validator</a></li></ol><h2 id="Validation-RegisteringValidators">Registering Validators</h2><p>Validation rules are handled by validators, which must be registered with
+</div><h2 id="Validation-UsingAnnotations">Using Annotations</h2><p><a shape="rect" href="validation-annotation.html">Annotations</a> can be used as an alternative to XML for validation.</p><p>&#160;</p><h2 id="Validation-BeanValidation">Bean Validation</h2><p>With struts 2.5 comes the Bean Validation Plugin. That is an alternative to the classic struts validation described here. See the <a shape="rect" href="bean-validation-plugin.html">Plugin Page</a> for details.</p><h2 id="Validation-Examples">Examples</h2><p>In all examples given here, the validation message displayed is given in plain English - to internationalize the message, put the string in a properties file and use a property key instead, specified by the 'key' attribute. It will be looked up by the framework (see <a shape="rect" href="localization.html">Localization</a>).</p><ol><li><a shape="rect" href="basic-validation.html">Basic Validation</a></li><li><a shape="rect" href="client-validation.html">Client-side Validati
 on</a></li><li><a shape="rect" href="ajax-validation.html">AJAX Validation</a></li><li><a shape="rect" href="using-field-validators.html">Using Field Validators</a></li><li><a shape="rect" href="using-non-field-validators.html">Using Non Field Validators</a></li><li><a shape="rect" href="using-visitor-field-validator.html">Using Visitor Field Validator</a></li><li><a shape="rect" href="how-do-we-repopulate-controls-when-validation-fails.html">How do we repopulate controls when validation fails</a> (FAQ entry)</li></ol><h2 id="Validation-BundledValidators">Bundled Validators</h2><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Note</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>When using a Field Validator, Field Validator Syntax is <strong>ALWAYS</strong> preferable than using the Plain Validator Syntax as it facilitates grouping of fi
 eld-validators according to fields. This is very handy especially if a field needs to have many <code>field-validators</code> which is almost always the case.</p></div></div><ol><li><a shape="rect" href="conversion-validator.html">conversion validator</a></li><li><a shape="rect" href="date-validator.html">date validator</a></li><li><a shape="rect" href="double-validator.html">double validator</a></li><li><a shape="rect" href="email-validator.html">email validator</a></li><li><a shape="rect" href="expression-validator.html">expression validator</a></li><li><a shape="rect" href="fieldexpression-validator.html">fieldexpression validator</a></li><li><a shape="rect" href="int-validator.html">int validator</a></li><li><a shape="rect" href="regex-validator.html">regex validator</a></li><li><a shape="rect" href="required-validator.html">required validator</a></li><li><a shape="rect" href="requiredstring-validator.html">requiredstring validator</a></li><li><a shape="rect" href="short-validat
 or.html">short validator</a></li><li><a shape="rect" href="stringlength-validator.html">stringlength validator</a></li><li><a shape="rect" href="url-validator.html">url validator</a></li><li><a shape="rect" href="visitor-validator.html">visitor validator</a></li><li><a shape="rect" href="conditionalvisitor-validator.html">conditionalvisitor validator</a></li></ol><h2 id="Validation-RegisteringValidators">Registering Validators</h2><p></p><p>Validation rules are handled by validators, which must be registered with
 the ValidatorFactory (using the registerValidator method). The simplest way to do so is to add a file name
 validators.xml in the root of the classpath (/WEB-INF/classes) that declares
-all the validators you intend to use.</p><p>The following list shows the default validators included in the framework and is an example of the syntax used to declare our own validators.</p><div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Struts 2.1 and Prior</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The <code>validators.xml</code> used to reference a DTD hosted by Opensymphony, the original location of the XWork project. Since the the move to Apache Struts, DTDs were changed. Please ensure in your projects to include the DTD header as described in the examples found here</p></div></div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Struts 2.0.7 a
 nd Prior</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The <code>validators.xml</code> containing custom validators needs to contain a copy of the default validators. No DTD was used in validators.xml. See: <a shape="rect" class="external-link" href="http://struts.apache.org/2.x/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases">http://struts.apache.org/2.x/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases</a></p></div></div><h2 id="Validation-TurningonValidation">Turning on Validation</h2><p>The default interceptor stack, "defaultStack", already has validation turned on. When creating your own interceptor-stack be sure to include <strong>both</strong> the <code>validation</code> and <code>workflow</code> interceptors. From <code>struts-default.xml</code>:</p><div class="code panel pdl" style="border-width: 1px;"><div class="c
 odeContent panelContent pdl">
+all the validators you intend to use.</p>The following list shows the default validators included in the framework and is an example of the syntax used to declare our own validators.<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;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE validators PUBLIC
+        &quot;-//Apache Struts//XWork Validator Definition 1.0//EN&quot;
+        &quot;http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd&quot;&gt;
+
+&lt;validators&gt;
+    &lt;validator name=&quot;required&quot; class=&quot;com.opensymphony.xwork2.validator.validators.RequiredFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;requiredstring&quot; class=&quot;com.opensymphony.xwork2.validator.validators.RequiredStringValidator&quot;/&gt;
+    &lt;validator name=&quot;int&quot; class=&quot;com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;long&quot; class=&quot;com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;short&quot; class=&quot;com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;double&quot; class=&quot;com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;date&quot; class=&quot;com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;expression&quot; class=&quot;com.opensymphony.xwork2.validator.validators.ExpressionValidator&quot;/&gt;
+    &lt;validator name=&quot;fieldexpression&quot; class=&quot;com.opensymphony.xwork2.validator.validators.FieldExpressionValidator&quot;/&gt;
+    &lt;validator name=&quot;email&quot; class=&quot;com.opensymphony.xwork2.validator.validators.EmailValidator&quot;/&gt;
+    &lt;validator name=&quot;url&quot; class=&quot;com.opensymphony.xwork2.validator.validators.URLValidator&quot;/&gt;
+    &lt;validator name=&quot;visitor&quot; class=&quot;com.opensymphony.xwork2.validator.validators.VisitorFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;conversion&quot; class=&quot;com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;stringlength&quot; class=&quot;com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;regex&quot; class=&quot;com.opensymphony.xwork2.validator.validators.RegexFieldValidator&quot;/&gt;
+    &lt;validator name=&quot;conditionalvisitor&quot; class=&quot;com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator&quot;/&gt;
+&lt;/validators&gt;
+]]></script>
+</div></div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Struts 2.1 and Prior</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The <code>validators.xml</code> used to reference a DTD hosted by Opensymphony, the original location of the XWork project. Since the the move to Apache Struts, DTDs were changed. Please ensure in your projects to include the DTD header as described in the examples found here</p></div></div><div class="confluence-information-macro confluence-information-macro-note"><p class="title">Struts 2.0.7 and Prior</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The <code>validators.xml</code> containing custom validators needs to contain a copy of the default validators. No DTD was used in validators.xml. See: <a sh
 ape="rect" class="external-link" href="http://struts.apache.org/2.x/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases">http://struts.apache.org/2.x/docs/release-notes-208.html#ReleaseNotes2.0.8-MigrationfrompreviousReleases</a></p></div></div><h2 id="Validation-TurningonValidation">Turning on Validation</h2><p>The default interceptor stack, "defaultStack", already has validation turned on. When creating your own interceptor-stack be sure to include <strong>both</strong> the <code>validation</code> and <code>workflow</code> interceptors. From <code>struts-default.xml</code>:</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;interceptor-stack name="defaultStack"&gt;
    ...
    &lt;interceptor-ref name="validation"&gt;
@@ -164,7 +190,7 @@ all the validators you intend to use.</p
 </div></div><p>Beginning with version 2.0.4 Struts provides an extension to XWork's <code>com.opensymphony.xwork2.validator.ValidationInterceptor</code> 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;">&lt;interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/&gt;
 </pre>
-</div></div><p>This interceptor allows us to turn off validation for a specific method by using the <code>@org.apache.struts2.interceptor.validation.SkipValidation</code> annotation on the action method.</p><h2 id="Validation-ValidatorScopes">Validator Scopes</h2><p>Field validators, as the name indicate, act on single fields accessible through an action.
+</div></div><p>This interceptor allows us to turn off validation for a specific method by using the <code>@org.apache.struts2.interceptor.validation.SkipValidation</code> annotation on the action method.</p><h2 id="Validation-ValidatorScopes">Validator Scopes</h2><p></p><p>Field validators, as the name indicate, act on single fields accessible through an action.
 A validator, in contrast, is more generic and can do validations in the full action context,
 involving more than one field (or even no field at all) in validation rule.
 Most validations can be defined on per field basis. This should be preferred over
@@ -173,10 +199,10 @@ related field and will be presented next
 respecting view.</p><p>Non-field validators only add action level messages. Non-field validators
 are mostly domain specific and therefore offer custom implementations.
 The most important standard non-field validator provided by XWork
-is ExpressionValidator.</p><h3 id="Validation-Notes">Notes</h3><p>Non-field validators takes precedence over field validators
+is ExpressionValidator.</p><h3 id="Validation-Notes">Notes</h3><p></p><p>Non-field validators takes precedence over field validators
 regardless of the order they are defined in *-validation.xml. If a non-field
 validator is short-circuited, it will causes its non-field validator to not
-being executed. See validation framework documentation for more info.</p><h2 id="Validation-DefiningValidationRules">Defining Validation Rules</h2><p></p><p>Validation rules can be specified:</p>
+being executed. See validation framework documentation for more info.</p><h2 id="Validation-DefiningValidationRules">Defining Validation Rules</h2><p></p><p></p><p>Validation rules can be specified:</p>
 <ol><li> Per Action class: in a file named ActionName-validation.xml</li><li> Per Action alias: in a file named ActionName-alias-validation.xml</li><li> Inheritance hierarchy and interfaces implemented by Action class:
  XWork searches up the inheritance tree of the action to find default
  validations for parent classes of the Action and interfaces implemented</li></ol>
@@ -226,7 +252,7 @@ Validators (and field-validators) must h
 to a name of an Validator registered with the ValidatorFactory as above.
 Validator elements may also have &lt;param&gt; elements with name and value attributes
 to set arbitrary parameters into the Validator instance. See below for discussion
-of the message element.</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>In this context, "Action Alias" refers to the action name as given in the Struts configuration. Often, the name attribute matches the method name, but they may also differ.</p></div></div><h2 id="Validation-LocalizingandParameterizingMessages">Localizing and Parameterizing Messages</h2><p></p><p>Each Validator or Field-Validator element must define one message element inside
+of the message element.</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>In this context, "Action Alias" refers to the action name as given in the Struts configuration. Often, the name attribute matches the method name, but they may also differ.</p></div></div><h2 id="Validation-LocalizingandParameterizingMessages">Localizing and Parameterizing Messages</h2><p></p><p></p><p>Each Validator or Field-Validator element must define one message element inside
 the validator element body. The message element has 1 attributes, key which is not
 required. The body of the message tag is taken as the default message which should
 be added to the Action if the validator fails. Key gives a message key to look up
@@ -267,7 +293,7 @@ Keeping this in mind, it is possible to
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 &lt;message&gt;${getText(&quot;validation.failednotice&quot;)}! ${getText(&quot;reason&quot;)}: ${getText(&quot;validation.inputrequired&quot;)}&lt;/message&gt;
 ]]></script>
-</div></div><h2 id="Validation-ValidatorFlavor">Validator Flavor</h2><p></p><p>The validators supplied by the XWork distribution (and any validators you
+</div></div><h2 id="Validation-ValidatorFlavor">Validator Flavor</h2><p></p><p></p><p>The validators supplied by the XWork distribution (and any validators you
 might write yourself) come in two different flavors:</p>
 
 <p></p><ol><li> Plain Validators / Non-Field validators </li><li> FieldValidators </li></ol>
@@ -335,7 +361,7 @@ to implement.</p><h2 id="Validation-Non-
     &lt;message&gt;The email address you entered is not valid.&lt;/message&gt; 
 &lt;/validator&gt; 
 </pre>
-</div></div><h2 id="Validation-Short-CircuitingValidator">Short-Circuiting Validator</h2><p></p><p>It is possible to short-circuit a stack of validators.
+</div></div><h2 id="Validation-Short-CircuitingValidator">Short-Circuiting Validator</h2><p></p><p></p><p>It is possible to short-circuit a stack of validators.
 Here is another sample config file containing validation rules from the
 Xwork test cases: Notice that some of the &lt;field-validator&gt; and
 &lt;validator&gt; elements have the short-circuit attribute set to true.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -422,7 +448,7 @@ By way of example, given this -validatio
 "required" validators are FieldValidator's and will not short-circuit the plain
 ExpressionValidator because FieldValidators only short-circuit other checks on
 that same field. Since the plain Validator is not field specific, it is
-not short-circuited.</p><h2 id="Validation-HowValidatorsofanActionareFound">How Validators of an Action are Found</h2><p></p><p>As mentioned above, the framework will also search up the inheritance tree
+not short-circuited.</p><h2 id="Validation-HowValidatorsofanActionareFound">How Validators of an Action are Found</h2><p></p><p></p><p>As mentioned above, the framework will also search up the inheritance tree
 of the action to find default validations for interfaces and parent classes of
 the Action. If you are using the short-circuit attribute and relying on
 default validators higher up in the inheritance tree, make sure you don't

Modified: websites/production/struts/content/docs/webxml.html
==============================================================================
--- websites/production/struts/content/docs/webxml.html (original)
+++ websites/production/struts/content/docs/webxml.html Tue Aug 25 07:57:34 2015
@@ -138,7 +138,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>The <code>web.xml</code> web application descriptor file represents the core of the Java web application, so it is appropriate that it is also part of the core of the Struts framework. In the <code>web.xml</code> file, Struts defines its FilterDispatcher, the Servlet Filter class that initializes the Struts framework and handles all requests. This filter can contain initialization parameters that affect what, if any, additional configuration files are loaded and how the framework should behave.</p><p>In addition to the FilterDispatcher, Struts also provides an ActionContextCleanUp class that handles special cleanup tasks when other filters, such as those used by Sitemesh, need access to an initialized Struts framework.</p><h2 id="web.xml-KeyInitializationParameters">Key Initialization Parameters</h2><p></p><div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
 </div><h2 id="web.xml-SimpleExample">Simple Example</h2><p>Configuring <code>web.xml</code> for the framework is a matter of adding a filter and filter-mapping.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FilterDispatcher Example (web.xml)</b></div><div class="codeContent panelContent pdl">
+            <div id="ConfluenceContent"><p>The <code>web.xml</code> web application descriptor file represents the core of the Java web application, so it is appropriate that it is also part of the core of the Struts framework. In the <code>web.xml</code> file, Struts defines its FilterDispatcher, the Servlet Filter class that initializes the Struts framework and handles all requests. This filter can contain initialization parameters that affect what, if any, additional configuration files are loaded and how the framework should behave.</p><p>In addition to the FilterDispatcher, Struts also provides an ActionContextCleanUp class that handles special cleanup tasks when other filters, such as those used by Sitemesh, need access to an initialized Struts framework.</p><h2 id="web.xml-SimpleExample">Simple Example</h2><p>Configuring <code>web.xml</code> for the framework is a matter of adding a filter and filter-mapping.</p><div class="code panel pdl" style="border-width: 1px;"><div clas
 s="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>FilterDispatcher Example (web.xml)</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;web-app id="WebApp_9" version="2.4" 
 	xmlns="http://java.sun.com/xml/ns/j2ee" 
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
@@ -146,7 +146,7 @@ under the License.
 
     &lt;filter&gt;
         &lt;filter-name&gt;struts2&lt;/filter-name&gt;
-        &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
+        &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
         &lt;init-param&gt;
         	&lt;param-name&gt;actionPackages&lt;/param-name&gt;
         	&lt;param-value&gt;com.mycompany.myapp.actions&lt;/param-value&gt;
@@ -189,7 +189,7 @@ under the License.
 </div></div><h2 id="web.xml-CustomFileManagerandFileManagerFactoryimplementations">Custom FileManager and FileManagerFactory implementations</h2><p>If there is a need to support an App Server's specific file system (eg. VFS in JBoss), you can implement your own version of FileManager. But it must be registered at "the beginning" to support bootstrap of the whole framework.</p><p>To register your own FileManger you can do it with &lt;init-param/&gt; as below:</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;filter&gt;
      &lt;filter-name&gt;struts2&lt;/filter-name&gt;
-     &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
+     &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
      &lt;init-param&gt;
          &lt;param-name&gt;struts.fileManager&lt;/param-name&gt;
          &lt;param-value&gt;com.company.MyFileManager&lt;/param-value&gt;
@@ -199,7 +199,7 @@ under the License.
 </div></div><p>You can as well register your own FileManagerFactory with &lt;init-param/&gt;, see example:</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;filter&gt;
      &lt;filter-name&gt;struts2&lt;/filter-name&gt;
-     &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
+     &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;
      &lt;init-param&gt;
          &lt;param-name&gt;struts.fileManagerFactory&lt;/param-name&gt;
          &lt;param-value&gt;com.company.MyFileManagerFactory&lt;/param-value&gt;