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 2016/01/27 10:26:52 UTC

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

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;