Modified: websites/production/struts/content/docs/convention-plugin.html
==============================================================================
--- websites/production/struts/content/docs/convention-plugin.html (original)
+++ websites/production/struts/content/docs/convention-plugin.html Wed Jan 27 
09:26:50 2016
@@ -139,12 +139,14 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440489266002 {padding: 0px;}
-div.rbtoc1440489266002 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1440489266002 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style></p><div class="toc-macro rbtoc1440489266002">
-<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" 
href="#ConventionPlugin-Introduction">Introduction</a></li><li><span 
class="TOCOutline">2</span> <a shape="rect" 
href="#ConventionPlugin-Setup">Setup</a></li><li><span 
class="TOCOutline">3</span> <a shape="rect" 
href="#ConventionPlugin-ConvertingaCodebehindbasedapplicationtoConvention">Converting
 a Codebehind based application to Convention</a></li><li><span 
class="TOCOutline">4</span> <a shape="rect" 
href="#ConventionPlugin-Helloworld">Hello world</a></li><li><span 
class="TOCOutline">5</span> <a shape="rect" 
href="#ConventionPlugin-Codebehindhelloworld">Code behind hello 
world</a></li><li><span class="TOCOutline">6</span> <a shape="rect" 
href="#ConventionPlugin-Resultsandresultcodes">Results and result 
codes</a></li><li><span class="TOCOutline">7</span> <a shape="rect" 
href="#ConventionPlugin-Chaining">Chaining</a></li><li><span 
class="TOCOutline">8</span> <a shape="rect" href="#ConventionPlugin-XWork
 packages">XWork packages</a></li><li><span class="TOCOutline">9</span> <a 
shape="rect" href="#ConventionPlugin-Annotationreference">Annotation 
reference</a>
+div.rbtoc1453884533921 {padding: 0px;}
+div.rbtoc1453884533921 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884533921 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884533921">
+<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" 
href="#ConventionPlugin-Introduction">Introduction</a></li><li><span 
class="TOCOutline">2</span> <a shape="rect" 
href="#ConventionPlugin-Setup">Setup</a></li><li><span 
class="TOCOutline">3</span> <a shape="rect" 
href="#ConventionPlugin-ConvertingaCodebehindbasedapplicationtoConvention">Converting
 a Codebehind based application to Convention</a></li><li><span 
class="TOCOutline">4</span> <a shape="rect" 
href="#ConventionPlugin-Helloworld">Hello world</a></li><li><span 
class="TOCOutline">5</span> <a shape="rect" 
href="#ConventionPlugin-Codebehindhelloworld">Code behind hello 
world</a></li><li><span class="TOCOutline">6</span> <a shape="rect" 
href="#ConventionPlugin-Resultsandresultcodes">Results and result codes</a>
+<ul class="toc-indentation"><li><span class="TOCOutline">6.1</span> <a 
shape="rect" href="#ConventionPlugin-Multiplenames">Multiple names</a></li></ul>
+</li><li><span class="TOCOutline">7</span> <a shape="rect" 
href="#ConventionPlugin-Chaining">Chaining</a></li><li><span 
class="TOCOutline">8</span> <a shape="rect" 
href="#ConventionPlugin-XWorkpackages">XWork packages</a></li><li><span 
class="TOCOutline">9</span> <a shape="rect" 
href="#ConventionPlugin-Annotationreference">Annotation reference</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">9.1</span> <a 
shape="rect" href="#ConventionPlugin-Actionannotation">Action annotation</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">9.1.1</span> <a 
shape="rect" 
href="#ConventionPlugin-Applying@Actionand@Actionsattheclasslevel">Applying 
@Action and @Actions at the class level</a></li></ul>
 </li><li><span class="TOCOutline">9.2</span> <a shape="rect" 
href="#ConventionPlugin-InterceptorRefannotation">InterceptorRef 
annotation</a></li><li><span class="TOCOutline">9.3</span> <a shape="rect" 
href="#ConventionPlugin-Resultannotation">Result annotation</a></li><li><span 
class="TOCOutline">9.4</span> <a shape="rect" 
href="#ConventionPlugin-Namespaceannotation">Namespace 
annotation</a></li><li><span class="TOCOutline">9.5</span> <a shape="rect" 
href="#ConventionPlugin-ResultPathannotation">ResultPath 
annotation</a></li><li><span class="TOCOutline">9.6</span> <a shape="rect" 
href="#ConventionPlugin-ParentPackageannotation">ParentPackage 
annotation</a></li><li><span class="TOCOutline">9.7</span> <a shape="rect" 
href="#ConventionPlugin-ExceptionMappingAnnotation">ExceptionMapping 
Annotation</a></li></ul>
@@ -246,7 +248,12 @@ The error message is ${message}
 &lt;/body&gt;
 &lt;/html&gt;
 </pre>
-</div></div><p>Now, if you compile the action and restart the application, 
based on the current time, you'll either see the result from 
<code>WEB-INF/content/hello-world.jsp</code> or 
<code>WEB-INF/content/hello-world-zero.jsp</code>.</p><p>The result type is 
based on the extension of the file. The supported extensions are: 
jsp,ftl,vm,html,html. Examples of Action and Result to Template 
mapping:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>URL</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Result</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>File that could match</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Result Type</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>/hello</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>success</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello.jsp</p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p>Dispatcher</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>/hello</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>success</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello-success.htm</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Dispatcher</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>/hello</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>success</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello.ftl</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>FreeMarker</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>/hello-world</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>input</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello-world-input.vm</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Velocity</p></td></tr><tr><td
  colspan="1" rowspan="1" 
class="confluenceTd"><p>/test1/test2/hello</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>error</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/test/test2/hello-error.html</p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p>Dispatcher</p></td></tr></tbody></table></div><h1 
id="ConventionPlugin-Chaining">Chaining</h1><p>If one action returns the name 
of another action in the same package, they will be chained together, if the 
first action doesn't have any result defined for that code. In the following 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>com.example.actions.HelloWorld</b></div><div class="codeContent 
panelContent pdl">
+</div></div><p>Now, if you compile the action and restart the application, 
based on the current time, you'll either see the result from 
<code>WEB-INF/content/hello-world.jsp</code> or 
<code>WEB-INF/content/hello-world-zero.jsp</code>.</p><p>The result type is 
based on the extension of the file. The supported extensions are: 
jsp,ftl,vm,html,html. Examples of Action and Result to Template 
mapping:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>URL</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Result</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>File that could match</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Result Type</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>/hello</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>success</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello.jsp</p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p>Dispatcher</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>/hello</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>success</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello-success.htm</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Dispatcher</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>/hello</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>success</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello.ftl</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>FreeMarker</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>/hello-world</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>input</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/hello-world-input.vm</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Velocity</p></td></tr><tr><td
  colspan="1" rowspan="1" 
class="confluenceTd"><p>/test1/test2/hello</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>error</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>/WEB-INF/content/test/test2/hello-error.html</p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p>Dispatcher</p></td></tr></tbody></table></div><h3 
id="ConventionPlugin-Multiplenames">Multiple names</h3><p>It is possible to 
define multiple names for the same result:</p><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;">@Action(results = {
+    @Result(name={"error", "input"}, location="input-form.jsp"),
+    @Result(name="success", location="success.jsp")
+})</pre>
+</div></div><p><span style="line-height: 1.42857;">Such functionality was 
added in Struts 2.5</span></p><h1 
id="ConventionPlugin-Chaining">Chaining</h1><p>If one action returns the name 
of another action in the same package, they will be chained together, if the 
first action doesn't have any result defined for that code. In the following 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>com.example.actions.HelloWorld</b></div><div class="codeContent 
panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package com.example.actions;
 
 import com.opensymphony.xwork2.Action;

Modified: websites/production/struts/content/docs/cssxhtml-theme.html
==============================================================================
--- websites/production/struts/content/docs/cssxhtml-theme.html (original)
+++ websites/production/struts/content/docs/cssxhtml-theme.html Wed Jan 27 
09:26:50 2016
@@ -225,7 +225,7 @@ under the License.
 &lt;#elseif parameters.labelposition??&gt;
 &lt;#assign labelpos = parameters.labelposition/&gt;
 &lt;/#if&gt;
-&lt;#if labelpos?default(&quot;top&quot;) == &#39;top&#39;&gt;
+&lt;#if (labelpos!&quot;top&quot;) == &#39;top&#39;&gt;
 &lt;div &lt;#rt/&gt;
 &lt;#else&gt;
 &lt;span &lt;#rt/&gt;
@@ -257,19 +257,19 @@ under the License.
  * under the License.
  */
 --&gt;
-${parameters.after?if_exists}&lt;#t/&gt;
+${parameters.after!}&lt;#t/&gt;
     &lt;#lt/&gt;
 &lt;#if !parameters.labelposition?? &amp;&amp; 
(parameters.form.labelposition)??&gt;
 &lt;#assign labelpos = parameters.form.labelposition/&gt;
 &lt;#elseif parameters.labelposition??&gt;
 &lt;#assign labelpos = parameters.labelposition/&gt;
 &lt;/#if&gt;
-&lt;#if labelpos?default(&quot;top&quot;) == &#39;top&#39;&gt;
+&lt;#if (labelpos!&quot;top&quot;) == &#39;top&#39;&gt;
 &lt;/div&gt; &lt;#rt/&gt;
 &lt;#else&gt;
 &lt;/span&gt; &lt;#rt/&gt;
 &lt;/#if&gt;
-&lt;#if parameters.errorposition?default(&quot;top&quot;) == 
&#39;bottom&#39;&gt;
+&lt;#if (parameters.errorposition!&quot;top&quot;) == &#39;bottom&#39;&gt;
 &lt;#assign hasFieldErrors = parameters.name?? &amp;&amp; fieldErrors?? 
&amp;&amp; fieldErrors[parameters.name]??/&gt;
 &lt;#if hasFieldErrors&gt;
 &lt;div &lt;#rt/&gt;&lt;#if 
parameters.id??&gt;id=&quot;wwerr_${parameters.id}&quot;&lt;#rt/&gt;&lt;/#if&gt;
 class=&quot;wwerr&quot;&gt;

Modified: websites/production/struts/content/docs/date.html
==============================================================================
--- websites/production/struts/content/docs/date.html (original)
+++ websites/production/struts/content/docs/date.html Wed Jan 27 09:26:50 2016
@@ -189,7 +189,7 @@ Following how the date component will wo
 
 <h2 id="date-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">format</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">Date or
  DateTime format pattern</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">id</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Deprecated. Use 'var' instead</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">name</td><td align="left" colspan="1" 
rowspan="1" valign="top"><strong>true</strong></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 date value to format</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">nice</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">Whether to print out the date 
 >nicely</td></tr><tr><td align="left" colspan="1" rowspan="1" 
 >valign="top">timezone</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 specific timezone in which to format the 
 >date</td></tr><tr><td align="left" colspan="1" rowspan="1" 
 >valign="top">var</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="le
 ft" colspan="1" rowspan="1" valign="top">String</td><td align="left" 
colspan="1" rowspan="1" valign="top">Name used to reference the value pushed 
into the Value Stack</td></tr></table></p>
+<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">format</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">Date or
  DateTime format pattern</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">name</td><td align="left" colspan="1" rowspan="1" 
valign="top"><strong>true</strong></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 date value to format</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">nice</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">Whether to print out the date nicely</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">timezone</td><td align="left" colspan="1" 
rowspan="1" val
 ign="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 specific timezone in which to format the date</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">var</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">Name used to reference the value pushed into the Value 
Stack</td></tr></table></p>
 
 <h2 id="date-Examples">Examples</h2>
 

Modified: websites/production/struts/content/docs/deprecationinterceptor.html
==============================================================================
--- websites/production/struts/content/docs/deprecationinterceptor.html 
(original)
+++ websites/production/struts/content/docs/deprecationinterceptor.html Wed Jan 
27 09:26:50 2016
@@ -140,12 +140,11 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h2 
id="DeprecationInterceptor-Description">Description</h2>
 
-<p>In devMode checks if application uses deprecated or unknown constants and 
displays warning
-when logging level is set to DEBUG</p>
+<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
 
 <h2 id="DeprecationInterceptor-Parameters">Parameters</h2>
 
-<p>no special parameters yet</p></div>
+<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/file-upload.html
==============================================================================
--- websites/production/struts/content/docs/file-upload.html (original)
+++ websites/production/struts/content/docs/file-upload.html Wed Jan 27 
09:26:50 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>The Struts 2 framework provides 
built-in support for processing file uploads that conform to <a shape="rect" 
class="external-link" href="http://www.ietf.org/rfc/rfc1867.txt"; 
rel="nofollow">RFC 1867</a>, "Form-based File Upload in HTML". When correctly 
configured the framework will pass uploaded file(s) into your Action class. 
Support for individual and multiple file uploads are provided. When a file is 
uploaded it will typically be stored in a temporary directory. Uploaded files 
should be processed or moved by your Action class to ensure the data is not 
lost. Be aware that servers may have a security policy in place that prohibits 
you from writing to directories other than the temporary directory and the 
directories that belong to your web application.</p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1440489248804 {padding: 0px;}
-div.rbtoc1440489248804 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440489248804 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884514716 {padding: 0px;}
+div.rbtoc1453884514716 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884514716 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1440489248804">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884514716">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FileUpload-Dependencies">Dependencies</a></li><li><a shape="rect" 
href="#FileUpload-BasicUsage">Basic Usage</a></li><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFiles">Uploading Multiple Files</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple Files 
using Arrays</a></li><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFilesusingLists">Uploading Multiple Files 
using Lists</a></li></ul>
 </li><li><a shape="rect" href="#FileUpload-AdvancedConfiguration">Advanced 
Configuration</a>
@@ -185,7 +185,7 @@ div.rbtoc1440489248804 li {margin-left:
     &lt;s:submit/&gt;
 &lt;/s:form&gt;
 ]]></script>
-</div></div><p>The fileUpload interceptor will use setter injection to insert 
the uploaded file and related data into your Action class. For a form field 
named <strong>upload</strong> you would provide the three setter methods shown 
in the following example:</p><p><strong>Example Action class:</strong></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div>The fileUpload interceptor will use setter injection to insert the 
uploaded file and related data into your Action class. For a form field named 
<strong>upload</strong> you would provide the three setter methods shown in the 
following example:<p><strong>Example Action class:</strong></p><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;">package com.example;
 
    import java.io.File;
@@ -214,7 +214,7 @@ div.rbtoc1440489248804 li {margin-left:
       }
  }
 </pre>
-</div></div><p>The purpose of each one of these methods is described in the 
table below. Notice that if you have multiple file form elements with different 
names you would be required to have another corresponding set of these methods 
for each file uploaded.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Signature</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setX(File file)</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The file that contains the content of the 
uploaded file. This is a temporary file and <code>file.getName()</code> will 
not return the original name of the file</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setXContentType(String 
contentType)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
mime type of the uploaded file</p></td></tr><tr><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>setXFileName(String 
fileName)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
actual file name of the uploaded file (not the HTML 
name)</p></td></tr></tbody></table></div><h2 
id="FileUpload-UploadingMultipleFiles">Uploading Multiple Files</h2><p>As 
mentioned in the previous section one technique for uploading multiple files 
would be to simply have multiple form input elements of type file all with 
different names. This would require a number of setter methods that was equal 
to 3 times the number of files being uploaded. Another option is to use Arrays 
or java.util.Lists. The following examples are taken from the Showcase example 
application that is part sample applications you can download at <a 
shape="rect" class="external-link" 
href="http://struts.apache.org/download.cgi";>http://struts.apache.org/download.cgi</a>.
 For the Action mapping details see <code>struts-fileupload.xml</code> in the 
sample application download.</
 p><h3 id="FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple 
Files using Arrays</h3><p><strong>multipleUploadUsingArray.jsp</strong> Notice 
all file input types have the same name.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><p><strong>MultipleFileUploadUsingArrayAction.java</strong></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>The purpose of each one of these methods is described in the 
table below. Notice that if you have multiple file form elements with different 
names you would be required to have another corresponding set of these methods 
for each file uploaded.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Signature</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setX(File file)</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The file that contains the content of the 
uploaded file. This is a temporary file and <code>file.getName()</code> will 
not return the original name of the file</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setXContentType(String 
contentType)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
mime type of the uploaded file</p></td></tr><tr><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>setXFileName(String 
fileName)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
actual file name of the uploaded file (not the HTML 
name)</p></td></tr></tbody></table></div><h2 
id="FileUpload-UploadingMultipleFiles">Uploading Multiple Files</h2><p>As 
mentioned in the previous section one technique for uploading multiple files 
would be to simply have multiple form input elements of type file all with 
different names. This would require a number of setter methods that was equal 
to 3 times the number of files being uploaded. Another option is to use Arrays 
or java.util.Lists. The following examples are taken from the Showcase example 
application that is part sample applications you can download at <a 
shape="rect" class="external-link" 
href="http://struts.apache.org/download.cgi";>http://struts.apache.org/download.cgi</a>.
 For the Action mapping details see <code>struts-fileupload.xml</code> in the 
sample application download.</
 p><h3 id="FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple 
Files using Arrays</h3><p><strong>multipleUploadUsingArray.jsp</strong> Notice 
all file input types have the same name.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><strong>MultipleFileUploadUsingArrayAction.java</strong><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[
 package org.apache.struts2.showcase.fileupload;
 
@@ -277,7 +277,7 @@ public class MultipleFileUploadUsingArra
        }
 }
 ]]></script>
-</div></div><h3 id="FileUpload-UploadingMultipleFilesusingLists">Uploading 
Multiple Files using Lists</h3><p><strong>multipleUploadUsingList.jsp</strong> 
Notice all file input types have the same name.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><p><strong>MultipleFileUploadUsingListAction.java</strong></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="FileUpload-UploadingMultipleFilesusingLists">Uploading 
Multiple Files using Lists</h3><p><strong>multipleUploadUsingList.jsp</strong> 
Notice all file input types have the same name.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><strong>MultipleFileUploadUsingListAction.java</strong><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[
 package org.apache.struts2.showcase.fileupload;
 
@@ -402,7 +402,7 @@ struts.multipart.maxSize=2097152
     &lt;result name="success"&gt;good_result.jsp&lt;/result&gt;
 &lt;/action&gt;
 </pre>
-</div></div><p>When the uploaded file type does not match one of the MIME 
types specified a field error will be created as described in the next section 
entitled Error Messages. Programmatically limiting the file type means using 
the information passed in to your Action class via the 
<code>setXContentType(String contentType)</code> method. The benefit to this 
type of approach would be that it's more flexible and no interceptor 
configuration would be needed if file sizes are keep under 2 megs.</p><h3 
id="FileUpload-ErrorMessages">Error Messages</h3><p>If an error occurs several 
field errors will be added assuming that the action implements 
<code>com.opensymphony.xwork2.ValidationAware</code> or extends 
<code>com.opensymphony.xwork2.ActionSupport</code>. These error messages are 
based on several i18n values stored in struts-messages.properties, a default 
i18n file processed for all i18n requests. You can override the text of these 
messages by providing text for the following keys:</p>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Error Key</p></th><th 
colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>struts.messages.error.uploading</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A general error that occurs 
when the file could not be uploaded</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>struts.messages.error.file.too.large</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Occurs when the uploaded file 
is too large as specified by maximumSize.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>struts.messages.error.content.type.not.allowed</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Occurs when the uploaded file 
does not match the expected content types specified</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>struts.
 messages.error.file.extension.not.allowed</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Occurs when uploaded file has disallowed 
extension</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>struts.messages.upload.error.SizeLimitExceededException</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Occurs when the upload request 
(as a whole) exceed configured 
<strong>struts.multipart.maxSize</strong></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>struts.messages.upload.error.&lt;Exception 
class SimpleName&gt;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Occurs when any other exception took place during file 
upload process</p></td></tr></tbody></table></div><h3 
id="FileUpload-TemporaryDirectories">Temporary Directories</h3><p>All uploaded 
files are saved to a temporary directory by the framework before being passed 
in to an Action. Depending on the allowed file sizes it may be necessary to 
have the framework s
 tore these temporary files in an alternate location. To do this change 
<code>struts.multipart.saveDir</code> to the directory where the uploaded files 
will be placed. If this property is not set it defaults to 
<code>javax.servlet.context.tempdir</code>. Keep in mind that on some operating 
systems, like Solaris, <code>/tmp</code> is memory based and files stored in 
that directory would consume an amount of RAM approximately equal to the size 
of the uploaded file.</p><h3 id="FileUpload-AlternateLibraries">Alternate 
Libraries</h3><p>The <code>struts.multipart.parser</code> used by the 
fileUpload interceptor to handle HTTP POST requests, encoded using the 
MIME-type multipart/form-data, can be changed out. Currently there are two 
choices, jakarta and pell. The jakarta parser is a standard part of the Struts 
2 framework needing only its required libraries added to a project. The pell 
parser uses Jason Pell's multipart parser instead of the Commons-FileUpload 
library. The pell parser is a 
 Struts 2 plugin, for more details see: <a shape="rect" class="external-link" 
href="http://cwiki.apache.org/S2PLUGINS/pell-multipart-plugin.html";>http://cwiki.apache.org/S2PLUGINS/pell-multipart-plugin.html</a>.
 There was a third alternative, cos, but it was removed due to licensing 
incompatibilities.</p><p>As from Struts version 2.3.18 a new implementation 
of&#160;<code>MultiPartRequest</code> was added 
-&#160;<code>JakartaStreamMultiPartRequest</code>. It can be used to handle 
large files, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-3025";>WW-3025</a> for more 
details, but you can simple set</p><pre>&lt;constant 
name="struts.multipart.parser" value="jakarta-stream" /&gt;</pre><p>in 
struts.xml to start using it.</p></div>
+</div></div><p>When the uploaded file type does not match one of the MIME 
types specified a field error will be created as described in the next section 
entitled Error Messages. Programmatically limiting the file type means using 
the information passed in to your Action class via the 
<code>setXContentType(String contentType)</code> method. The benefit to this 
type of approach would be that it's more flexible and no interceptor 
configuration would be needed if file sizes are keep under 2 megs.</p><h3 
id="FileUpload-ErrorMessages">Error Messages</h3><p>If an error occurs several 
field errors will be added assuming that the action implements 
<code>com.opensymphony.xwork2.ValidationAware</code> or extends 
<code>com.opensymphony.xwork2.ActionSupport</code>. These error messages are 
based on several i18n values stored in struts-messages.properties, a default 
i18n file processed for all i18n requests. You can override the text of these 
messages by providing text for the following keys:</p>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Error Key</p></th><th 
colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>struts.messages.error.uploading</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A general error that occurs 
when the file could not be uploaded</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>struts.messages.error.file.too.large</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Occurs when the uploaded file 
is too large as specified by maximumSize.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>struts.messages.error.content.type.not.allowed</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Occurs when the uploaded file 
does not match the expected content types specified</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>struts.
 messages.error.file.extension.not.allowed</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Occurs when uploaded file has disallowed 
extension</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>struts.messages.upload.error.SizeLimitExceededException</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Occurs when the upload request 
(as a whole) exceed configured 
<strong>struts.multipart.maxSize</strong></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>struts.messages.upload.error.&lt;Exception 
class SimpleName&gt;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Occurs when any other exception took place during file 
upload process</p></td></tr></tbody></table></div><h3 
id="FileUpload-TemporaryDirectories">Temporary Directories</h3><p>All uploaded 
files are saved to a temporary directory by the framework before being passed 
in to an Action. Depending on the allowed file sizes it may be necessary to 
have the framework s
 tore these temporary files in an alternate location. To do this change 
<code>struts.multipart.saveDir</code> to the directory where the uploaded files 
will be placed. If this property is not set it defaults to 
<code>javax.servlet.context.tempdir</code>. Keep in mind that on some operating 
systems, like Solaris, <code>/tmp</code> is memory based and files stored in 
that directory would consume an amount of RAM approximately equal to the size 
of the uploaded file.</p><h3 id="FileUpload-AlternateLibraries">Alternate 
Libraries</h3><p>The <code>struts.multipart.parser</code> used by the 
fileUpload interceptor to handle HTTP POST requests, encoded using the 
MIME-type multipart/form-data, can be changed out. Currently there are two 
choices, jakarta and pell. The jakarta parser is a standard part of the Struts 
2 framework needing only its required libraries added to a project. The pell 
parser uses Jason Pell's multipart parser instead of the Commons-FileUpload 
library. The pell parser is a 
 Struts 2 plugin, for more details see: <a shape="rect" 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33353";>pell
 multipart plugin</a>. There was a third alternative, cos, but it was removed 
due to licensing incompatibilities.</p><p>As from Struts version 2.3.18 a new 
implementation of&#160;<code>MultiPartRequest</code> was added 
-&#160;<code>JakartaStreamMultiPartRequest</code>. It can be used to handle 
large files, see&#160;<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-3025";>WW-3025</a> for more 
details, but you can simple set</p><pre>&lt;constant 
name="struts.multipart.parser" value="jakarta-stream" /&gt;</pre><p>in 
struts.xml to start using it.</p></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/freemarker.html
==============================================================================
--- websites/production/struts/content/docs/freemarker.html (original)
+++ websites/production/struts/content/docs/freemarker.html Wed Jan 27 09:26:50 
2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440488800473 {padding: 0px;}
-div.rbtoc1440488800473 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440488800473 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884162352 {padding: 0px;}
+div.rbtoc1453884162352 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884162352 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1440488800473">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884162352">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FreeMarker-GettingStarted">Getting Started</a></li><li><a shape="rect" 
href="#FreeMarker-Servlet/JSPScopedObjects">Servlet / JSP Scoped Objects</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FreeMarker-ApplicationScopeAttribute">Application Scope 
Attribute</a></li><li><a shape="rect" 
href="#FreeMarker-SessionScopeAttribute">Session Scope Attribute</a></li><li><a 
shape="rect" href="#FreeMarker-RequestScopeAttribute">Request Scope 
Attribute</a></li><li><a shape="rect" 
href="#FreeMarker-RequestParameter">Request Parameter</a></li><li><a 
shape="rect" href="#FreeMarker-Contextparameter">Context parameter</a></li></ul>
 </li><li><a shape="rect" href="#FreeMarker-TemplateLoading">Template 
Loading</a></li><li><a shape="rect" 
href="#FreeMarker-VariableResolution">Variable Resolution</a></li><li><a 
shape="rect" href="#FreeMarker-TagSupport">Tag Support</a></li><li><a 
shape="rect" href="#FreeMarker-TipsandTricks">Tips and Tricks</a>

Modified: websites/production/struts/content/docs/generator.html
==============================================================================
--- websites/production/struts/content/docs/generator.html (original)
+++ websites/production/struts/content/docs/generator.html Wed Jan 27 09:26:50 
2016
@@ -149,7 +149,7 @@ at the end of the tag.</p>
 
 <h2 id="generator-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">converter</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">org.apache.struts2.util.IteratorGenerator.Converter</td><td 
align="le
 ft" colspan="1" rowspan="1" valign="top">The converter to convert the String 
entry parsed from <i>val</i> into an object</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">count</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">Integer</td><td align="left" colspan="1" rowspan="1" 
valign="top">The max number entries to be in the iterator</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">id</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Deprecated. Use 'var' instead</td></tr><tr><td align="left" colspan
 ="1" rowspan="1" valign="top">separator</td><td align="left" colspan="1" 
rowspan="1" valign="top"><strong>true</strong></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 separator to be used in separating the <i>val</i> into entries 
of the iterator</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">val</td><td align="left" colspan="1" rowspan="1" 
valign="top"><strong>true</strong></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 source to be parsed into an iterator</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">var</td><td align="left" 
colspan="1" rowspa
 n="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The name to store the resultant iterator into page context, if 
such name is supplied</td></tr></table></p>
+<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">converter</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">org.apache.struts2.util.IteratorGenerator.Converter</td><td 
align="le
 ft" colspan="1" rowspan="1" valign="top">The converter to convert the String 
entry parsed from <i>val</i> into an object</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">count</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">Integer</td><td align="left" colspan="1" rowspan="1" 
valign="top">The max number entries to be in the iterator</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">separator</td><td 
align="left" colspan="1" rowspan="1" valign="top"><strong>true</strong></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 separator to be used in separating the <
 i>val</i> into entries of the iterator</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">val</td><td align="left" colspan="1" 
rowspan="1" valign="top"><strong>true</strong></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 source to be parsed into an iterator</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">var</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The name to store the resultant iterator into page context, if 
such name is supplied</td></tr></table></p>
 
 <h2 id="generator-Examples">Examples</h2>
 

Modified: websites/production/struts/content/docs/guides.html
==============================================================================
--- websites/production/struts/content/docs/guides.html (original)
+++ websites/production/struts/content/docs/guides.html Wed Jan 27 09:26:50 2016
@@ -128,7 +128,7 @@ under the License.
             <div id="ConfluenceContent"><p>Our in-depth guides focus on 
specific areas of the framework, such as Views, the Core framework, and 
Third-party Extensions.</p><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>We started work on a new <a 
shape="rect" href="user-guide.html">User Guide</a>, that should simplify 
learning process. Please feel free to contribute!</p></div></div><h2 
id="Guides-CoreDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13945";><a
 shape="rect" href="core-developers-guide.html">Core Developers 
Guide</a></h2><p>Struts 2 processes requests using three core types: <a 
shape="rect" href="interceptor-configuration.html">interceptors</a>, <a 
shape="rect" href="action-configuration.html">actions</a>, and <a shape="rect" 
href="result-configuration.html">re
 sults</a>. Each may be configured via XML or annotations.</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><ul><li><a shape="rect" 
href="tutorials.html">Tutorials</a> - Read me first!</li><li>Developing 
Applications with Struts 2<ul><li><a shape="rect" 
href="nutshell.html">Nutshell</a></li><li><a shape="rect" 
href="ajax.html">AJAX</a></li><li><a shape="rect" 
href="dependency-injection.html">Dependency Injection</a></li><li><a 
shape="rect" href="profiling.html">Profiling</a></li><li><a shape="rect" 
href="debugging.html">Debugging</a></li><li><a shape="rect" 
href="devmode.html">Development 
Mode</a></li></ul></li><li>Configuration<ul><li><a shape="rect" 
href="convention-plugin.html">Configuration by Convention</a></li><li><a 
shape="rect" href="annotations.html">Annotations</a></li><li><a shape="rect" 
href="configuration-elements.html">Configuration Elements</a><ul><li><a 
shape="rect" href="action-configuration.html">A
 ctions</a>, <a shape="rect" href="wildcard-mappings.html">Wildcard 
Mappings</a>, <a shape="rect" href="bean-configuration.html">Beans</a>, <a 
shape="rect" href="constant-configuration.html">Constants</a></li><li><a 
shape="rect" href="exception-configuration.html">Exceptions</a>, <a 
shape="rect" href="include-configuration.html">Includes</a>, <a shape="rect" 
href="interceptor-configuration.html">Interceptors</a></li><li><a shape="rect" 
href="namespace-configuration.html">Namespaces</a>, <a shape="rect" 
href="package-configuration.html">Packages</a>, <a shape="rect" 
href="result-configuration.html">Results</a></li><li><a shape="rect" 
href="unknown-handlers.html">Unknown Handlers</a>, <a shape="rect" 
href="dispatcher.html">Dispatcher</a></li></ul></li><li><a shape="rect" 
href="configuration-files.html">Configuration Files</a><ul><li><a shape="rect" 
href="webxml.html">web.xml</a></li><li><a shape="rect" 
href="strutsxml.html">struts.xml</a></li><li><a shape="rect" 
href="strutsproperties.
 html">struts.properties</a></li><li><a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a></li><li><a shape="rect" 
href="velocityproperties.html">velocity.properties</a></li><li><a shape="rect" 
href="struts-defaultvm.html">struts-default.vm</a></li></ul></li><li><a 
shape="rect" href="application-servers.html">Application Servers</a></li><li><a 
shape="rect" href="performance-tuning.html">Performance 
Tuning</a></li></ul></li><li><img class="emoticon emoticon-light-on" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png";
 data-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" 
href="security.html">Security</a></li></ul></td><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" 
href="testing-actions.html">Testing Actions</a><ul><li><a shape="rect" 
class="external-link" 
href="https://depressedprogrammer.wordpress.com/2007/06/18/unit-testing-struts-2-actions-sprin
 g-junit/" rel="nofollow">(arsenalist)</a></li><li><a shape="rect" 
class="external-link" 
href="http://fassisrosa.blogspot.com/2006/11/unit-testing-struts-20.html"; 
rel="nofollow">(rosa)</a></li></ul></li><li><a shape="rect" 
href="interceptors.html">Interceptors</a><ul><li><a shape="rect" 
href="writing-interceptors.html">Writing Interceptors</a></li><li><a 
shape="rect" href="parameters-interceptor.html">Excluding 
Parameters</a></li></ul></li><li>Actions<ul><li><a shape="rect" 
href="model-driven.html">Model Driven</a></li><li><a shape="rect" 
href="action-chaining.html">Action Chaining</a></li><li><a shape="rect" 
href="actioneventlistener.html">ActionEventListener</a></li></ul></li><li>Results<ul><li><a
 shape="rect" href="result-types.html">Result Types</a></li><li><a shape="rect" 
href="dispatcherlistener.html">DispatcherListener</a></li><li><a shape="rect" 
href="preresultlistener.html">PreResultListener</a></li></ul></li><li><a 
shape="rect" href="validation.html">Validation</a></li><li>
 <a shape="rect" href="localization.html">Localization</a><ul><li><a 
shape="rect" href="formatting-dates-and-numbers.html">Formatting Dates and 
Numbers</a></li></ul></li><li><a shape="rect" href="type-conversion.html">Type 
Conversion</a></li><li><a shape="rect" href="static-content.html">Static 
Content</a></li><li>Portlets<ul><li><a shape="rect" 
href="struts-2-portlet-tutorial.html">Tutorial</a></li><li><a shape="rect" 
href="portlet-plugin.html">Configuration/Documentation</a></li></ul></li><li><a 
shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" 
href="faqs.html">FAQs</a><ul><li><a shape="rect" 
href="struts-2-maven-archetypes.html">Struts 2 Maven Archetypes</a></li><li><a 
shape="rect" href="cookbook.html">Cookbook</a></li></ul></li><li><a 
shape="rect" class="external-link" 
href="http://struts.apache.org/2.x/struts2-core/apidocs/index.html";>Javadoc 
APIs</a></li></ul></td></tr></tbody></table></div><h2 
id="Guides-TagDevelopersGuidehttps://cwiki.apache.org/confluence/
 pages/viewpage.action?pageId=14324"><a shape="rect" 
href="tag-developers-guide.html">Tag Developers Guide</a></h2><p>The framework 
offers a flexible view layer that supports multiple view technologies, 
including JSP, FreeMaker, and Velocity.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" href="struts-tags.html">Struts 
Tags</a><ul><li><a shape="rect" href="generic-tags.html">Generic 
Tags</a></li><li><a shape="rect" href="ui-tags.html">UI Tags</a></li><li><a 
shape="rect" href="themes-and-templates.html">Themes and 
Templates</a></li><li><a shape="rect" href="tag-reference.html">Tag 
Reference</a></li><li><a shape="rect" href="ajax-tags.html">Ajax 
Tags</a><ul><li><a shape="rect" href="ajax-and-javascript-recipes.html">Ajax 
and JavaScript Recipes</a></li></ul></li></ul></li><li><a shape="rect" 
href="ognl.html">OGNL</a></li><li><a shape="rect" href="tag-syntax.html">Tag 
Syntax</a></li><li><a shap
 e="rect" href="alt-syntax.html">Alt Syntax</a></li></ul></td><td colspan="1" 
rowspan="1" class="confluenceTd"><ul><li><a shape="rect" 
href="jsp.html">JSP</a><ul><li><a shape="rect" href="jsp-tags.html">specific 
tags</a></li></ul></li><li><a shape="rect" 
href="freemarker.html">FreeMarker</a><ul><li><a shape="rect" 
href="freemarker-tags.html">specific tags</a></li></ul></li><li><a shape="rect" 
href="velocity.html">Velocity</a><ul><li><a shape="rect" 
href="velocity-tags.html">specific 
tags</a></li></ul></li></ul></td></tr></tbody></table></div><h2 
id="Guides-PluginDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=44163";><a
 shape="rect" href="plugin-developers-guide.html">Plugin Developers 
Guide</a></h2><p>Apache Struts 2 provides a simple <a shape="rect" 
href="plugins.html">plugin architecture</a> so that developers can extend the 
framework just by adding a JAR to the application's classpath. Since plugins 
are contained in a JAR, they are easy to share wit
 h others. Several plugins are bundled with the framework, and others are 
available from third-party sources.</p><ul><li><a shape="rect" 
href="plugins.html">Plugins</a></li><li><a shape="rect" 
href="extending-an-application-with-custom-plugins.html">Extending an 
Application with Custom Plugins</a></li></ul><h3 
id="Guides-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" 
href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a 
shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> 
(2.3.1+)</li><li><a shape="rect" href="codebehind-plugin.html">Codebehind 
Plugin</a> (<strong>&lt; 2.5</strong>)</li><li><a shape="rect" 
href="config-browser-plugin.html">Config Browser Plugin</a></li><li><a 
shape="rect" href="convention-plugin.html">Convention Plugin</a> 
(2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR 
Plugin</a></li><li><a shap
 e="rect" href="embedded-jsp-plugin.html">Embedded JSP Plugin</a> 
(2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports 
Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 
Support Plugin</a> (2.3.21+)</li><li><a shape="rect" 
href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a 
shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a 
shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span><strong>&lt; 
2.5</strong><span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON 
Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit 
Plugin</a></li></ul></td><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal 
Plugin</a> (2.1.7+)</li><li><a shape="rect" href="osgi-plugin.html">OSGi 
Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus 
Plugin</a></li><li><a shape="rect" href="portlet-plugin.htm
 l">Portlet Plugin</a></li><li><a shape="rect" 
href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a 
shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a 
shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a 
shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a 
shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a 
shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a> 
<span>(</span><strong>&lt; 2.5</strong><span>)</span></li><li><a shape="rect" 
href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" 
href="tiles-2-plugin.html">Tiles 2 Plugin</a></li><li><a shape="rect" 
href="tiles-3-plugin.html">Tiles 3 
Plugin</a></li></ul></td></tr></tbody></table></div><p><img class="emoticon 
emoticon-tick" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png";
 data-emoticon-name="tick" alt="(tick)"> For a comp
 lete list of bundled and third-party plugins, visit the <a shape="rect" 
class="external-link" href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin 
Registry.</a>.</p><h2 
id="Guides-ArchitectsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=45478";><a
 shape="rect" href="architects-guide.html">Architects Guide</a></h2><p>
 </p><ul><li><a shape="rect" href="big-picture.html">Big Picture</a>
        <ul><li><a shape="rect" 
href="objectfactory.html">ObjectFactory</a></li><li><a shape="rect" 
href="actionmapper.html">ActionMapper</a></li><li><a shape="rect" 
href="action-proxy-actionproxy-factory.html">Action Proxy &amp; ActionProxy 
Factory</a></li><li><a shape="rect" 
href="configuration-provider-configuration.html">Configuration Provider &amp; 
Configuration</a></li></ul>
-       </li></ul><h2 
id="Guides-MigrationGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13981";><a
 shape="rect" href="migration-guide.html">Migration Guide</a></h2><p>Getting 
here from there.</p><h3 id="Guides-VersionNotes2.5.x">Version Notes 
2.5.x</h3><ul><li><a shape="rect" href="version-notes-25.html">Version Notes 
2.5</a></li></ul><h3 id="Guides-VersionNotes2.3.x">Version Notes 
2.3.x</h3><ul><li><a shape="rect" href="version-notes-2324.html">Version Notes 
2.3.24</a></li><li><a shape="rect" href="version-notes-23201.html">Version 
Notes 2.3.20.1</a></li><li><a shape="rect" 
href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a shape="rect" 
href="version-notes-23163.html">Version Notes 2.3.16.3</a></li><li><a 
shape="rect" href="version-notes-23162.html">Version Notes 
2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version 
Notes 2.3.16.1</a></li><li><a shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shap
 e="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a 
shape="rect" href="version-notes-23152.html">Version Notes 
2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version 
Notes 2.3.15.1</a></li><li><a shape="rect" 
href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" 
href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a 
shape="rect" href="version-notes-23142.html">Version Notes 
2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version 
Notes 2.3.14.1</a></li><li><a shape="rect" 
href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="vers
 ion-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" 
href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" 
href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a 
shape="rect" href="version-notes-2311.html">Version Notes 
2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 
2.3.1</a></li></ul><h3 id="Guides-VersionNotes2.2.x">Version Notes 
2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 
2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 
2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="Guides-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 
2.1.8</a></li><li><a shape="rect" 
 href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a shape="rect" 
href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a shape="rect" 
href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a shape="rect" 
href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a shape="rect" 
href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a shape="rect" 
href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" 
href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
id="Guides-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" 
href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" 
href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" 
href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" 
href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a 
shape="rect" href="release-notes-20111.html">Release Notes 2.0.11.1</a></l
 i><li><a shape="rect" href="release-notes-2011.html">Release Notes 
2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release Notes 
2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release Notes 
2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release Notes 
2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release Notes 
2.0.7</a></li><li><a shape="rect" href="release-notes-206.html">Release Notes 
2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes 
2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes 
2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes 
2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes 
2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes 
2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes 
2.0.0</a></li></ul><h3 id="Guides-Struts1toStruts2">Struts 1 to Strut
 s 2</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 
Solutions</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Various issues (and hopefully their solutions!) 
encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-strategies.html">Migration Strategies</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies 
for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" href="migrat
 ion-tools.html">Migration Tools</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 
id="Guides-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://www.infoq.com/news/migrating-struts2"; rel="nofollow">Migrating 
Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="Guides-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th c
 olspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Don Brown's summary of 
events</p></td></tr></tbody></table></div><h3 
id="Guides-Webwork2.2toStruts2">Webwork 2.2 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="key-changes-from-webwork-2.html">Key Changes From WebWork 
2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been 
removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="webwork-2-migration-strategies.html">WebWork 2 Migration 
Strategies</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2
  applications to Struts 2.</p></td></tr></tbody></table></div><h2 
id="Guides-ContributorsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=14041";><a
 shape="rect" href="contributors-guide.html">Contributors Guide</a></h2><p>
+       </li></ul><h2 
id="Guides-MigrationGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13981";><a
 shape="rect" href="migration-guide.html">Migration Guide</a></h2><p>Getting 
here from there.</p><h3 id="Guides-VersionNotes2.5.x">Version Notes 
2.5.x</h3><ul><li><a shape="rect" href="version-notes-25.html">Version Notes 
2.5</a></li></ul><h3 id="Guides-VersionNotes2.3.x">Version Notes 
2.3.x</h3><ul><li><a shape="rect" href="version-notes-23241.html">Version Notes 
2.3.24.1</a></li><li><a shape="rect" href="version-notes-2324.html">Version 
Notes 2.3.24</a></li><li><a shape="rect" 
href="version-notes-23201.html">Version Notes 2.3.20.1</a></li><li><a 
shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a 
shape="rect" href="version-notes-23163.html">Version Notes 
2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162.html">Version 
Notes 2.3.16.2</a></li><li><a shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a s
 hape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a 
shape="rect" href="version-notes-23153.html">Version Notes 
2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version 
Notes 2.3.15.2</a></li><li><a shape="rect" 
href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a 
shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a 
shape="rect" href="version-notes-23143.html">Version Notes 
2.3.14.3</a></li><li><a shape="rect" href="version-notes-23142.html">Version 
Notes 2.3.14.2</a></li><li><a shape="rect" 
href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a 
shape="rect" href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a 
shape="rect" href="version-notes-23120.html">Version Notes 
2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version 
Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version 
Notes 2.3.7</a></li><li><a shape="rect" href="ve
 rsion-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" 
href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" 
href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" 
href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a 
shape="rect" href="version-notes-2311.html">Version Notes 
2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version Notes 
2.3.1</a></li></ul><h3 id="Guides-VersionNotes2.2.x">Version Notes 
2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version Notes 
2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 
2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="Guides-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="r
 ect" href="version-notes-218.html">Version Notes 2.1.8</a></li><li><a 
shape="rect" href="version-notes-216.html">Version Notes 2.1.6</a></li><li><a 
shape="rect" href="version-notes-215.html">Version Notes 2.1.5</a></li><li><a 
shape="rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a 
shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a 
shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a 
shape="rect" href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a 
shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
id="Guides-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" 
href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" 
href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" 
href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" 
href="release-notes-20112.html">Release Notes 2.0.11.2</a></l
 i><li><a shape="rect" href="release-notes-20111.html">Release Notes 
2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release 
Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release 
Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release 
Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release 
Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release 
Notes 2.0.7</a></li><li><a shape="rect" href="release-notes-206.html">Release 
Notes 2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release 
Notes 2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release 
Notes 2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release 
Notes 2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release 
Notes 2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release 
Notes 2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">
 Release Notes 2.0.0</a></li></ul><h3 id="Guides-Struts1toStruts2">Struts 1 to 
Struts 2</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" 
href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 
Solutions</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Various issues (and hopefully their solutions!) 
encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-strategies.html">Migration Strategies</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies 
for migrating Struts 1 applications to Struts 2.</p></td></tr><
 tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 
id="Guides-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://www.infoq.com/news/migrating-struts2"; rel="nofollow">Migrating 
Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="Guides-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowsp
 an="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Don Brown's summary of 
events</p></td></tr></tbody></table></div><h3 
id="Guides-Webwork2.2toStruts2">Webwork 2.2 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="key-changes-from-webwork-2.html">Key Changes From WebWork 
2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been 
removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="webwork-2-migration-strategies.html">WebWork 2 Migration 
Strategies</a></p></th><td colspan="1" rowsp
 an="1" class="confluenceTd"><p>Steps and overall strategies for migrating 
WebWork 2 applications to Struts 2.</p></td></tr></tbody></table></div><h2 
id="Guides-ContributorsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=14041";><a
 shape="rect" href="contributors-guide.html">Contributors Guide</a></h2><p>
 
 </p><h3 id="Guides-Source">Source</h3>
 

Modified: websites/production/struts/content/docs/interceptors.html
==============================================================================
--- websites/production/struts/content/docs/interceptors.html (original)
+++ websites/production/struts/content/docs/interceptors.html Wed Jan 27 
09:26:50 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><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>The default Interceptor stack is 
designed to serve the needs of most applications. Most applications will 
<strong>not</strong> need to add Interceptors or change the Interceptor 
stack.</p></div></div><p>Many Actions share common concerns. Some Actions need 
input validated. Other Actions may need a file upload to be pre-processed. 
Another Action might need protection from a double submit. Many Actions need 
drop-down lists and other controls pre-populated before the page 
displays.</p><p>The framework makes it easy to share solutions to these 
concerns using an "Interceptor" strategy. When you request a resource that maps 
to an "action", the framework invokes the Action object. But, before the Action 
is executed, the invocatio
 n can be intercepted by another object. After the Action executes, the 
invocation could be intercepted again. Unsurprisingly, we call these objects 
"Interceptors."</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440488678590 {padding: 0px;}
-div.rbtoc1440488678590 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440488678590 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884069963 {padding: 0px;}
+div.rbtoc1453884069963 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884069963 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1440488678590">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884069963">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Interceptors-UnderstandingInterceptors">Understanding 
Interceptors</a></li><li><a shape="rect" 
href="#Interceptors-ConfiguringInterceptors">Configuring 
Interceptors</a></li><li><a shape="rect" 
href="#Interceptors-StackingInterceptors">Stacking Interceptors</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Interceptors-TheDefaultConfiguration">The Default 
Configuration</a></li></ul>
 </li><li><a shape="rect" href="#Interceptors-FrameworkInterceptors">Framework 
Interceptors</a>
@@ -223,26 +223,20 @@ div.rbtoc1440488678590 li {margin-left:
     and {@link com.opensymphony.xwork2.inject.Inject}
 --&gt;
 &lt;!DOCTYPE struts PUBLIC
-    &quot;-//Apache Software Foundation//DTD Struts Configuration 2.3//EN&quot;
-    &quot;http://struts.apache.org/dtds/struts-2.3.dtd&quot;&gt;
+    &quot;-//Apache Software Foundation//DTD Struts Configuration 2.5//EN&quot;
+    &quot;http://struts.apache.org/dtds/struts-2.5.dtd&quot;&gt;
 
 &lt;struts&gt;
 
     &lt;constant name=&quot;struts.excludedClasses&quot;
-              value=&quot;
-                java.lang.Object,
-                java.lang.Runtime,
-                java.lang.System,
-                java.lang.Class,
-                java.lang.ClassLoader,
-                java.lang.Shutdown,
-                ognl.OgnlContext,
-                ognl.MemberAccess,
-                ognl.ClassResolver,
-                ognl.TypeConverter,
-                com.opensymphony.xwork2.ActionContext&quot; /&gt;
+              value=&quot;com.opensymphony.xwork2.ActionContext&quot; /&gt;
+
     &lt;!-- this must be valid regex, each &#39;.&#39; in package name must be 
escaped! --&gt;
-    &lt;constant name=&quot;struts.excludedPackageNamePatterns&quot; 
value=&quot;^java\.lang\..*,^ognl.*,^(?!javax\.servlet\..+)(javax\..+)&quot; 
/&gt;
+    &lt;!-- it&#39;s more flexible but slower than simple string comparison 
--&gt;
+    &lt;!-- constant name=&quot;struts.excludedPackageNamePatterns&quot; 
value=&quot;^java\.lang\..*,^ognl.*,^(?!javax\.servlet\..+)(javax\..+)&quot; / 
--&gt;
+
+    &lt;!-- this is simpler version of the above used with string comparison 
--&gt;
+    &lt;constant name=&quot;struts.excludedPackageNames&quot; 
value=&quot;java.lang,ognl,javax&quot; /&gt;
 
     &lt;bean class=&quot;com.opensymphony.xwork2.ObjectFactory&quot; 
name=&quot;struts&quot;/&gt;
     &lt;bean type=&quot;com.opensymphony.xwork2.factory.ResultFactory&quot; 
name=&quot;struts&quot; 
class=&quot;org.apache.struts2.factory.StrutsResultFactory&quot; /&gt;
@@ -355,7 +349,7 @@ div.rbtoc1440488678590 li {margin-left:
     &lt;bean 
type=&quot;com.opensymphony.xwork2.security.ExcludedPatternsChecker&quot; 
name=&quot;struts&quot; 
class=&quot;com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker&quot;
 scope=&quot;prototype&quot; /&gt;
     &lt;bean 
type=&quot;com.opensymphony.xwork2.security.AcceptedPatternsChecker&quot; 
name=&quot;struts&quot; 
class=&quot;com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker&quot;
 scope=&quot;prototype&quot; /&gt;
 
-    &lt;package name=&quot;struts-default&quot; abstract=&quot;true&quot;&gt;
+    &lt;package name=&quot;struts-default&quot; abstract=&quot;true&quot; 
strict-method-invocation=&quot;true&quot;&gt;
         &lt;result-types&gt;
             &lt;result-type name=&quot;chain&quot; 
class=&quot;com.opensymphony.xwork2.ActionChainResult&quot;/&gt;
             &lt;result-type name=&quot;dispatcher&quot; 
class=&quot;org.apache.struts2.result.ServletDispatcherResult&quot; 
default=&quot;true&quot;/&gt;
@@ -405,7 +399,6 @@ div.rbtoc1440488678590 li {margin-left:
             &lt;interceptor name=&quot;roles&quot; 
class=&quot;org.apache.struts2.interceptor.RolesInterceptor&quot; /&gt;
             &lt;interceptor name=&quot;annotationWorkflow&quot; 
class=&quot;com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor&quot;
 /&gt;
             &lt;interceptor name=&quot;multiselect&quot; 
class=&quot;org.apache.struts2.interceptor.MultiselectInterceptor&quot; /&gt;
-            &lt;interceptor name=&quot;deprecation&quot; 
class=&quot;org.apache.struts2.interceptor.DeprecationInterceptor&quot; /&gt;
 
             &lt;!-- Basic stack --&gt;
             &lt;interceptor-stack name=&quot;basicStack&quot;&gt;
@@ -418,7 +411,6 @@ div.rbtoc1440488678590 li {margin-left:
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
                 &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
-                &lt;interceptor-ref name=&quot;deprecation&quot;/&gt;
             &lt;/interceptor-stack&gt;
 
             &lt;!-- Sample validation and workflow stack --&gt;
@@ -524,7 +516,6 @@ div.rbtoc1440488678590 li {margin-left:
                     &lt;param 
name=&quot;excludeMethods&quot;&gt;input,back,cancel,browse&lt;/param&gt;
                 &lt;/interceptor-ref&gt;
                 &lt;interceptor-ref name=&quot;debugging&quot;/&gt;
-                &lt;interceptor-ref name=&quot;deprecation&quot;/&gt;
             &lt;/interceptor-stack&gt;
 
             &lt;!-- The completeStack is here for backwards compatibility for
@@ -551,6 +542,9 @@ div.rbtoc1440488678590 li {margin-left:
         &lt;default-interceptor-ref name=&quot;defaultStack&quot;/&gt;
 
         &lt;default-class-ref 
class=&quot;com.opensymphony.xwork2.ActionSupport&quot; /&gt;
+
+        
&lt;global-allowed-methods&gt;execute,input,back,cancel,browse,save,delete,list,index&lt;/global-allowed-methods&gt;
+
     &lt;/package&gt;
 
 &lt;/struts&gt;


Reply via email to