Author: lukaszlenart
Date: Fri Dec  2 07:17:46 2016
New Revision: 1002006

Log:
Updates production

Added:
    websites/production/struts/content/docs/s2-044.html
    websites/production/struts/content/docs/version-notes-257.html
Modified:
    websites/production/struts/content/docs/actionmapper.html
    websites/production/struts/content/docs/checkboxlist.html
    websites/production/struts/content/docs/constant-configuration.html
    websites/production/struts/content/docs/conversion-error-interceptor.html
    websites/production/struts/content/docs/default-workflow-interceptor.html
    websites/production/struts/content/docs/doubleselect.html
    websites/production/struts/content/docs/extending-themes.html
    websites/production/struts/content/docs/file-upload.html
    websites/production/struts/content/docs/freemarker.html
    
websites/production/struts/content/docs/how-can-we-access-request-parameters-passed-into-an-action.html
    websites/production/struts/content/docs/i18n-interceptor.html
    websites/production/struts/content/docs/interceptors.html
    websites/production/struts/content/docs/localization.html
    websites/production/struts/content/docs/migration-guide.html
    websites/production/struts/content/docs/optiontransferselect.html
    websites/production/struts/content/docs/param.html
    websites/production/struts/content/docs/plugins.html
    websites/production/struts/content/docs/radio.html
    websites/production/struts/content/docs/security-bulletins.html
    websites/production/struts/content/docs/security.html
    websites/production/struts/content/docs/servlet-config-interceptor.html
    websites/production/struts/content/docs/set.html
    websites/production/struts/content/docs/struts-defaultxml.html
    websites/production/struts/content/docs/template-loading.html
    websites/production/struts/content/docs/testing-actions.html
    websites/production/struts/content/docs/text.html
    websites/production/struts/content/docs/tiles-plugin.html
    websites/production/struts/content/docs/type-conversion.html
    websites/production/struts/content/docs/updownselect.html
    websites/production/struts/content/docs/validation.html
    websites/production/struts/content/docs/version-notes-2331.html
    websites/production/struts/content/docs/xhtml-theme.html

Modified: websites/production/struts/content/docs/actionmapper.html
==============================================================================
--- websites/production/struts/content/docs/actionmapper.html (original)
+++ websites/production/struts/content/docs/actionmapper.html Fri Dec  2 
07:17:46 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.rbtoc1472795636335 {padding: 0px;}
-div.rbtoc1472795636335 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1472795636335 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1480661815723 {padding: 0px;}
+div.rbtoc1480661815723 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661815723 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1472795636335">
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661815723">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Description">Description</a></li><li><a shape="rect" 
href="#ActionMapper-DefaultActionMapper">DefaultActionMapper</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Methodprefix">Method prefix</a></li><li><a shape="rect" 
href="#ActionMapper-Actionprefix">Action prefix</a></li><li><a shape="rect" 
href="#ActionMapper-AllowedactionnameRegEx">Allowed action name 
RegEx</a></li><li><a shape="rect" 
href="#ActionMapper-AllowedmethodnameRegEx">Allowed method name 
RegEx</a></li></ul>
 </li><li><a shape="rect" href="#ActionMapper-CustomActionMapper">Custom 
ActionMapper</a></li><li><a shape="rect" 
href="#ActionMapper-CompositeActionMapper">CompositeActionMapper</a></li><li><a 
shape="rect" 
href="#ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</a></li><li><a
 shape="rect" 
href="#ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and 
ActionMapping objects</a>

Modified: websites/production/struts/content/docs/checkboxlist.html
==============================================================================
--- websites/production/struts/content/docs/checkboxlist.html (original)
+++ websites/production/struts/content/docs/checkboxlist.html Fri Dec  2 
07:17:46 2016
@@ -142,7 +142,7 @@ under the License.
 <div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Important</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 <p></p><p>
 Note that the listkey and listvalue attribute will default to "key" and "value"
-respectively only when the list attribute is evaluated to a Map or its 
decendant.
+respectively only when the list attribute is evaluated to a Map or its 
descendant.
 Everything else will result in listkey and listvalue to be null and not used.
 </p></div></div>
 

Modified: websites/production/struts/content/docs/constant-configuration.html
==============================================================================
--- websites/production/struts/content/docs/constant-configuration.html 
(original)
+++ websites/production/struts/content/docs/constant-configuration.html Fri Dec 
 2 07:17:46 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.rbtoc1476770250347 {padding: 0px;}
-div.rbtoc1476770250347 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1476770250347 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1480661962192 {padding: 0px;}
+div.rbtoc1480661962192 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661962192 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1476770250347">
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661962192">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ConstantConfiguration-Constant">Constant</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ConstantConfiguration-Valuesubstitution">Value 
substitution</a></li><li><a shape="rect" 
href="#ConstantConfiguration-Sampleusage">Sample usage</a></li></ul>
 </li></ul>
@@ -152,7 +152,7 @@ div.rbtoc1476770250347 li {margin-left:
     &lt;constant name="os" value="Current OS = ${os.name}"/&gt;
 
 
-    &lt;constant name="struts.devMode" 
value="${ENV.STRUTS_DEV_MODE:false}"/&gt;
+    &lt;constant name="struts.devMode" 
value="${env.STRUTS_DEV_MODE:false}"/&gt;
 &lt;/struts&gt;</pre>
 </div></div><p>Note: substitution is limited to System properties and ENV 
variables and works only for&#160;<code>constant</code>s (as for now).</p><h3 
id="ConstantConfiguration-Sampleusage">Sample usage</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Constant Example 
(struts.xml)</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;struts&gt;

Modified: 
websites/production/struts/content/docs/conversion-error-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/conversion-error-interceptor.html 
(original)
+++ websites/production/struts/content/docs/conversion-error-interceptor.html 
Fri Dec  2 07:17:46 2016
@@ -153,6 +153,12 @@ display the original string ("abc") agai
 the user).
 </p>
 
+<p></p><p>
+<b>Note:</b> Since 2.5.2, this interceptor extends MethodFilterInterceptor, 
therefore being
+able to deal with excludeMethods / includeMethods parameters. See [Workflow 
Interceptor]
+(class DefaultWorkflowInterceptor) for documentation and examples on how to 
use this feature.
+</p>
+
 
 <p>From the Javadocs of the Struts 2 interceptor:</p>
 

Modified: 
websites/production/struts/content/docs/default-workflow-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/default-workflow-interceptor.html 
(original)
+++ websites/production/struts/content/docs/default-workflow-interceptor.html 
Fri Dec  2 07:17:46 2016
@@ -139,7 +139,8 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>
-An interceptor that makes sure there are not validation errors before allowing 
the interceptor chain to continue.
+An interceptor that makes sure there are not validation, conversion or action 
errors before allowing the interceptor chain to continue. 
+If a single FieldError or ActionError (including the ones replicated by the 
Message Store Interceptor in a redirection) is found, the INPUT result will be 
triggered.
 <b>This interceptor does not perform any validation</b>.
 </p>
 

Modified: websites/production/struts/content/docs/doubleselect.html
==============================================================================
--- websites/production/struts/content/docs/doubleselect.html (original)
+++ websites/production/struts/content/docs/doubleselect.html Fri Dec  2 
07:17:46 2016
@@ -142,7 +142,7 @@ under the License.
 <div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Important</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 <p></p><p>
 Note that the doublelistkey and doublelistvalue attribute will default to 
"key" and "value"
-respectively only when the doublelist attribute is evaluated to a Map or its 
decendant.
+respectively only when the doublelist attribute is evaluated to a Map or its 
descendant.
 Other thing else, will result in doublelistkey and doublelistvalue to be null 
and not used.
 </p>
 </div></div>

Modified: websites/production/struts/content/docs/extending-themes.html
==============================================================================
--- websites/production/struts/content/docs/extending-themes.html (original)
+++ websites/production/struts/content/docs/extending-themes.html Fri Dec  2 
07:17:46 2016
@@ -138,7 +138,14 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Most often, an application may just 
need to override a template (see <a shape="rect" 
href="template-loading.html">Template Loading</a>) so that a certain control 
renders differently. Or, an application may need to add a new template to an 
existing theme. Other times, you might want to create an entirely new theme, 
perhaps because you are building a rich set of unique and reusable templates 
for your organization.</p><p>There are three ways to create new 
themes:</p><ul><li>Create a new theme from scratch 
(<strong>hard!</strong>)</li><li>Wrap an existing theme</li><li>Extend an 
existing theme</li></ul><h2 
id="ExtendingThemes-CreatingaNewThemefromScratch">Creating a New Theme from 
Scratch</h2><div class="confluence-information-macro 
confluence-information-macro-tip"><p class="title">Keep it simple, 
Sam!</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro
 -body"><p>It's probably never a good idea to create a new theme from scratch. 
Instead, use the <a shape="rect" href="simple-theme.html">simple theme</a> as a 
starting point. The simple theme provides just enough foundation to make it 
easy to create new controls by extending or wrapping the basic controls. Before 
starting a new theme, be sure to review the source templates for all of the 
provided themes. The existing themes are your best guide to creating new 
themes.</p></div></div><h2 
id="ExtendingThemes-WrappinganExistingTheme">Wrapping an Existing 
Theme</h2><p>The <a shape="rect" href="xhtml-theme.html">xhtml theme</a> 
provides several good examples of the "wrapping" technique. The <a shape="rect" 
href="simple-theme.html">simple theme</a> renders the basic control. The xhtml 
theme "dresses up" many of the controls by adding a header and footer.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Wra
 pping a control</b></div><div class="codeContent panelContent pdl">
+            <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1480661710298 {padding: 0px;}
+div.rbtoc1480661710298 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661710298 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661710298">
+<ul class="toc-indentation"><li><a shape="rect" 
href="#ExtendingThemes-CreatingaNewThemefromScratch">Creating a New Theme from 
Scratch</a></li><li><a shape="rect" 
href="#ExtendingThemes-WrappinganExistingTheme">Wrapping an Existing 
Theme</a></li><li><a shape="rect" 
href="#ExtendingThemes-ExtendinganExistingTheme">Extending an Existing 
Theme</a></li><li><a shape="rect" 
href="#ExtendingThemes-Specialparameters">Special parameters</a></li></ul>
+</div><p>Most often, an application may just need to override a template (see 
<a shape="rect" href="template-loading.html">Template Loading</a>) so that a 
certain control renders differently. Or, an application may need to add a new 
template to an existing theme. Other times, you might want to create an 
entirely new theme, perhaps because you are building a rich set of unique and 
reusable templates for your organization.</p><p>There are three ways to create 
new themes:</p><ul><li>Create a new theme from scratch 
(<strong>hard!</strong>)</li><li>Wrap an existing theme</li><li>Extend an 
existing theme</li></ul><h2 
id="ExtendingThemes-CreatingaNewThemefromScratch">Creating a New Theme from 
Scratch</h2><div class="confluence-information-macro 
confluence-information-macro-tip"><p class="title">Keep it simple, 
Sam!</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>It's probably never a go
 od idea to create a new theme from scratch. Instead, use the <a shape="rect" 
href="simple-theme.html">simple theme</a> as a starting point. The simple theme 
provides just enough foundation to make it easy to create new controls by 
extending or wrapping the basic controls. Before starting a new theme, be sure 
to review the source templates for all of the provided themes. The existing 
themes are your best guide to creating new themes.</p></div></div><h2 
id="ExtendingThemes-WrappinganExistingTheme">Wrapping an Existing 
Theme</h2><p>The <a shape="rect" href="xhtml-theme.html">xhtml theme</a> 
provides several good examples of the "wrapping" technique. The <a shape="rect" 
href="simple-theme.html">simple theme</a> renders the basic control. The xhtml 
theme "dresses up" many of the controls by adding a header and footer.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Wrapping a 
control</b></div><div clas
 s="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;#include 
"/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" /&gt;
 &lt;#include "/${parameters.templateDir}/simple/xxx.ftl" /&gt;
 &lt;#include 
"/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /&gt;

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 Fri Dec  2 
07:17:46 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.rbtoc1464698383595 {padding: 0px;}
-div.rbtoc1464698383595 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1464698383595 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1480661996121 {padding: 0px;}
+div.rbtoc1480661996121 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661996121 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1464698383595">
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661996121">
 <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>

Modified: websites/production/struts/content/docs/freemarker.html
==============================================================================
--- websites/production/struts/content/docs/freemarker.html (original)
+++ websites/production/struts/content/docs/freemarker.html Fri Dec  2 07:17:46 
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.rbtoc1464698178092 {padding: 0px;}
-div.rbtoc1464698178092 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1464698178092 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1480661779052 {padding: 0px;}
+div.rbtoc1480661779052 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661779052 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1464698178092">
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661779052">
 <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/how-can-we-access-request-parameters-passed-into-an-action.html
==============================================================================
--- 
websites/production/struts/content/docs/how-can-we-access-request-parameters-passed-into-an-action.html
 (original)
+++ 
websites/production/struts/content/docs/how-can-we-access-request-parameters-passed-into-an-action.html
 Fri Dec  2 07:17:46 2016
@@ -138,40 +138,10 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent">
-
-<p>You can obtain the request parameters by asking the ActionContext or 
implementing ParameterAware. Implementing ParameterAware is preferred.</p>
-
-<h2 
id="HowcanweaccessrequestparameterspassedintoanAction-AsktheActionContext">Ask 
the ActionContext</h2>
-
-<p>The request parameters are available on the ActionContext instance, which 
is made available via ThreadLocal.</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;">
-Map parameters = ActionContext.getContext().getParameters();
-</pre>
-</div></div>
-
-<h2 
id="HowcanweaccessrequestparameterspassedintoanAction-ImplementParameterAware">Implement
 ParameterAware</h2>
-
-<p><img class="emoticon emoticon-yellow-star" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/star_yellow.png";
 data-emoticon-name="yellow-star" alt="(star)"> <em>Preferred</em></p>
-<ul><li>Ensure that <code>servlet-config</code> Interceptor is included in the 
Action's stack.
-       <ul><li><img class="emoticon emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> <em>The default stack already 
includes</em> <code><em>servlet-config</em></code><em>.</em></li></ul>
-       </li><li>Edit the Action so that it implements the ParameterAware 
interface.
-       <ul><li>The ParameterAware interface expects a 
<code>setParameters</code> method. You may wish to include a companion 
<code>getParameters</code> method.</li></ul>
-       </li><li>At runtime, call <code>getParameters</code> to obtain a Map 
representing the request parameters.</li></ul>
-
-
-<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;">
-Map parameters = this.getParameters();
+            <div id="ConfluenceContent"><p>You can obtain the request 
parameters by asking the ActionContext or implementing ParameterAware. 
Implementing ParameterAware is preferred.</p><h2 
id="HowcanweaccessrequestparameterspassedintoanAction-AsktheActionContext">Ask 
the ActionContext</h2><p>The request parameters are available on the 
ActionContext instance, which is made available via ThreadLocal.</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;">Map parameters = 
ActionContext.getContext().getParameters();
 </pre>
-</div></div>
-<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>When the 
<code>servlet-config</code> Interceptor sees that an Action implements 
ParameterAware, it passes a Map of the request parameters to the Action's 
<code>setParameters</code> method.</p></div></div>
-<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>To unit test a ParameterAware Action, create your own Map with the 
pertinent request parameters and call <code>setParameters</code> as part of the 
test's <code>setUp</code> method.</p></div></div>
-<p>@see <a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a><br clear="none">
-@see org.apache.struts.action2.interceptor.ParameterAware<br clear="none">
-@see org.apache.struts.action2.interceptor.<a shape="rect" 
href="servlet-config-interceptor.html">Servlet Config Interceptor</a></p></div>
+</div></div><h2 
id="HowcanweaccessrequestparameterspassedintoanAction-ImplementHttpParametersAware">Implement
 HttpParametersAware</h2><p><img class="emoticon emoticon-yellow-star" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/star_yellow.png";
 data-emoticon-name="yellow-star" alt="(star)"> 
<em>Preferred</em></p><ul><li>Ensure that <code>servlet-config</code> 
Interceptor is included in the Action's stack.<ul><li><img class="emoticon 
emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> <em>The default stack already 
includes</em> 
<code><em>servlet-config</em></code><em>.</em></li></ul></li><li>Edit the 
Action so that it implements the HttpParametersAware interface.<ul><li>The 
HttpParametersAware interface expects a <code>setParameters</code> method. You 
may wi
 sh to include a companion <code>getParameters</code> 
method.</li></ul></li><li>At runtime, call <code>getParameters</code> to obtain 
an object representing the request parameters.</li></ul><p>&#160;</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>When the 
<code>servlet-config</code> Interceptor sees that an Action implements 
ParameterAware, it passes a Map of the request parameters to the Action's 
<code>setParameters</code> method.</p></div></div><p>see <a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a>&#160;and 
org.apache.struts.action2.interceptor.<a shape="rect" 
href="servlet-config-interceptor.html">Servlet Config Interceptor</a></p></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/i18n-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/i18n-interceptor.html (original)
+++ websites/production/struts/content/docs/i18n-interceptor.html Fri Dec  2 
07:17:46 2016
@@ -138,49 +138,19 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>
-An interceptor that handles setting the locale specified in a session as the 
locale for the current action request.
-In addition, this interceptor will look for a specific HTTP request parameter 
and set the locale to whatever value is
-provided. This means that this interceptor can be used to allow for your 
application to dynamically change the locale
-for the user's session or, alternatively, only for the current request (since 
XWork 2.1.3).
-This is very useful for applications that require multi-lingual support and 
want the user to
-be able to set his or her language preference at any point. The locale 
parameter is removed during the execution of
-this interceptor, ensuring that properties aren't set on an action (such as 
request_locale) that have no typical
-corresponding setter in your action.
-</p>
-
-<p></p><p>
-For example, using the default parameter name, a request to 
<b>foo.action?request_locale=en_US</b>, then the
-locale for US English is saved in the user's session and will be used for all 
future requests.
-If there is no locale set (for example with the first visit), the interceptor 
uses the browser locale.
-</p>
-
+            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
 
 <h2 id="I18nInterceptor-Parameters">Parameters</h2>
 
-
-<p></p><ul><li>parameterName (optional) - the name of the HTTP request 
parameter that dictates the locale to switch to and save
-in the session. By default this is 
<b>request_locale</b></li><li>requestOnlyParameterName (optional) - the name of 
the HTTP request parameter that dictates the locale to switch to
-for the current request only, without saving it in the session. By default 
this is <b>request_only_locale</b></li><li>attributeName (optional) - the name 
of the session key to store the selected locale. By default this is
-<b>WW_TRANS_I18N_LOCALE</b></li></ul>
+<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
 
 <h2 id="I18nInterceptor-ExtendingtheInterceptor">Extending the Interceptor</h2>
 
-<p></p><p>
-There are no known extensions points for this interceptor.
-</p>
+<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
 
 <h2 id="I18nInterceptor-Examples">Examples</h2>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
-    &lt;interceptor-ref name=&quot;i18n&quot;/&gt;
-    &lt;interceptor-ref name=&quot;basicStack&quot;/&gt;
-    &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
-&lt;/action&gt;
-]]></script>
-</div></div></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/interceptors.html
==============================================================================
--- websites/production/struts/content/docs/interceptors.html (original)
+++ websites/production/struts/content/docs/interceptors.html Fri Dec  2 
07:17:46 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.rbtoc1472795632122 {padding: 0px;}
-div.rbtoc1472795632122 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1472795632122 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1480661696460 {padding: 0px;}
+div.rbtoc1480661696460 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661696460 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1472795632122">
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661696460">
 <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>
@@ -342,6 +342,8 @@ div.rbtoc1472795632122 li {margin-left:
     &lt;bean type=&quot;ognl.PropertyAccessor&quot; 
name=&quot;java.util.Map&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.XWorkMapPropertyAccessor&quot;
 /&gt;
     &lt;bean type=&quot;ognl.PropertyAccessor&quot; 
name=&quot;java.util.Collection&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor&quot;
 /&gt;
     &lt;bean type=&quot;ognl.PropertyAccessor&quot; 
name=&quot;com.opensymphony.xwork2.ognl.ObjectProxy&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.ObjectProxyPropertyAccessor&quot;
 /&gt;
+    &lt;bean type=&quot;ognl.PropertyAccessor&quot; 
name=&quot;org.apache.struts2.dispatcher.HttpParameters&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.HttpParametersPropertyAccessor&quot;
 /&gt;
+    &lt;bean type=&quot;ognl.PropertyAccessor&quot; 
name=&quot;org.apache.struts2.dispatcher.Parameter&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.ParameterPropertyAccessor&quot;
 /&gt;
 
     &lt;bean type=&quot;ognl.MethodAccessor&quot; 
name=&quot;java.lang.Object&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor&quot; 
/&gt;
     &lt;bean type=&quot;ognl.MethodAccessor&quot; 
name=&quot;com.opensymphony.xwork2.util.CompoundRoot&quot; 
class=&quot;com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor&quot; 
/&gt;
@@ -363,6 +365,8 @@ div.rbtoc1472795632122 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;bean 
type=&quot;com.opensymphony.xwork2.config.providers.ValueSubstitutor&quot; 
class=&quot;com.opensymphony.xwork2.config.providers.EnvsValueSubstitutor&quot; 
scope=&quot;singleton&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;
@@ -391,7 +395,7 @@ div.rbtoc1472795632122 li {margin-left:
             &lt;interceptor name=&quot;execAndWait&quot; 
class=&quot;org.apache.struts2.interceptor.ExecuteAndWaitInterceptor&quot;/&gt;
             &lt;interceptor name=&quot;exception&quot; 
class=&quot;com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor&quot;/&gt;
             &lt;interceptor name=&quot;fileUpload&quot; 
class=&quot;org.apache.struts2.interceptor.FileUploadInterceptor&quot;/&gt;
-            &lt;interceptor name=&quot;i18n&quot; 
class=&quot;com.opensymphony.xwork2.interceptor.I18nInterceptor&quot;/&gt;
+            &lt;interceptor name=&quot;i18n&quot; 
class=&quot;org.apache.struts2.interceptor.I18nInterceptor&quot;/&gt;
             &lt;interceptor name=&quot;logger&quot; 
class=&quot;com.opensymphony.xwork2.interceptor.LoggingInterceptor&quot;/&gt;
             &lt;interceptor name=&quot;modelDriven&quot; 
class=&quot;com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor&quot;/&gt;
             &lt;interceptor name=&quot;scopedModelDriven&quot; 
class=&quot;com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor&quot;/&gt;

Modified: websites/production/struts/content/docs/localization.html
==============================================================================
--- websites/production/struts/content/docs/localization.html (original)
+++ websites/production/struts/content/docs/localization.html Fri Dec  2 
07:17:46 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.rbtoc1464698162642 {padding: 0px;}
-div.rbtoc1464698162642 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1464698162642 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1480661764458 {padding: 0px;}
+div.rbtoc1480661764458 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1480661764458 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1464698162642">
+/*]]>*/</style></p><div class="toc-macro rbtoc1480661764458">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Localization-Overview">Overview</a></li><li><a shape="rect" 
href="#Localization-ResourceBundleSearchOrder">Resource Bundle Search Order</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Localization-Defaultaction'sclass">Default action's class</a></li><li><a 
shape="rect" href="#Localization-UsinggetTextfromaTag">Using getText from a 
Tag</a></li><li><a shape="rect" href="#Localization-Usingthetexttag">Using the 
text tag</a></li><li><a shape="rect" href="#Localization-UsingtheI18ntag">Using 
the I18n tag</a></li><li><a shape="rect" 
href="#Localization-UsingtheKeyattributeofUITags">Using the Key attribute of UI 
Tags</a></li></ul>
 </li><li><a shape="rect" href="#Localization-I18nInterceptor">I18n 
Interceptor</a></li><li><a shape="rect" 
href="#Localization-GlobalResources(struts.custom.i18n.resources)instruts.properties">Global
 Resources (struts.custom.i18n.resources) in struts.properties</a></li><li><a 
shape="rect" href="#Localization-FormattingDatesandNumbers">Formatting Dates 
and Numbers</a></li><li><a shape="rect" 
href="#Localization-ComparisonwithStruts1">Comparison with Struts 
1</a></li><li><a shape="rect" href="#Localization-Next:">Next: Type 
Conversion</a></li></ul>

Modified: websites/production/struts/content/docs/migration-guide.html
==============================================================================
--- websites/production/struts/content/docs/migration-guide.html (original)
+++ websites/production/struts/content/docs/migration-guide.html Fri Dec  2 
07:17:46 2016
@@ -125,7 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Getting here from there.</p><h3 
id="MigrationGuide-VersionNotes2.5.x">Version Notes 2.5.x</h3><ul><li><a 
shape="rect" href="version-notes-255.html">Version Notes 2.5.5</a></li><li><a 
shape="rect" href="version-notes-252.html">Version Notes 2.5.2</a></li><li><a 
shape="rect" href="version-notes-251.html">Version Notes 2.5.1</a></li><li><a 
shape="rect" href="version-notes-25.html">Version Notes 2.5</a></li></ul><h3 
id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a 
shape="rect" href="version-notes-2331.html">Version Notes 2.3.31</a></li><li><a 
shape="rect" href="version-notes-2330.html">Version Notes 2.3.30</a></li><li><a 
shape="rect" href="version-notes-2329.html">Version Notes 2.3.29</a></li><li><a 
shape="rect" href="version-notes-23281.html">Version Notes 
2.3.28.1</a></li><li><a shape="rect" href="version-notes-2328.html">Version 
Notes 2.3.28</a></li><li><a shape="rect" 
href="version-notes-23243.html">Version Notes 2.3
 .24.3</a></li><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-23203.html">Version Notes 2.3.20.3</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 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="version-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="ve
 rsion-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="MigrationGuide-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="MigrationGuide-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="MigrationGuide-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></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="MigrationGuide-Struts2.3toStruts2.5">Struts 2.3 to Struts 2.5</h3><div 
 >class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
 >rowspan="1" class="confluenceTh"><p><a shape="rect" 
 >href="struts-23-to-25-migration.html">Struts 2.3 to 2
 .5 migration</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd">Migration guide.</td></tr></tbody></table></div><h3 
id="MigrationGuide-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="MigrationGuide-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="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" cla
 ss="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 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="MigrationGuide-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="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" 
href="where-do-we-get-the-latest-version-the-framework.html">Where do we get 
the latest version the framework</a>?</li><li><a shape="rect" 
href="what-are-some-of-the-frameworks-best-features.html">What are some of the 
framework's best features</a>?</li><li><a shape="rect" 
href="what-is-the-actioncontext.html">What is the 
ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2></div>
+            <div id="ConfluenceContent"><p>Getting here from there.</p><h3 
id="MigrationGuide-VersionNotes2.5.x">Version Notes 2.5.x</h3><ul><li><a 
shape="rect" href="version-notes-257.html">Version Notes 2.5.7</a></li><li><a 
shape="rect" href="version-notes-255.html">Version Notes 2.5.5</a></li><li><a 
shape="rect" href="version-notes-252.html">Version Notes 2.5.2</a></li><li><a 
shape="rect" href="version-notes-251.html">Version Notes 2.5.1</a></li><li><a 
shape="rect" href="version-notes-25.html">Version Notes 2.5</a></li></ul><h3 
id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a 
shape="rect" href="version-notes-2331.html">Version Notes 2.3.31</a></li><li><a 
shape="rect" href="version-notes-2330.html">Version Notes 2.3.30</a></li><li><a 
shape="rect" href="version-notes-2329.html">Version Notes 2.3.29</a></li><li><a 
shape="rect" href="version-notes-23281.html">Version Notes 
2.3.28.1</a></li><li><a shape="rect" href="version-notes-2328.html">Version 
Notes 2.3.28
 </a></li><li><a shape="rect" href="version-notes-23243.html">Version Notes 
2.3.24.3</a></li><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-23203.html">Version Notes 2.3.20.3</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 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><l
 i><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="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="versi
 on-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="MigrationGuide-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="MigrationGuide-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="MigrationGuide-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></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="MigrationGuide-Struts2.3toStruts2.5">Struts 2.3 to Struts 2.5</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluen
 ceTh"><p><a shape="rect" href="struts-23-to-25-migration.html">Struts 2.3 to 
2.5 migration</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd">Migration guide.</td></tr></tbody></table></div><h3 
id="MigrationGuide-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">Mi
 gration 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="MigrationGuide-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="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbo
 dy><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 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="MigrationGuide-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 St
 ruts 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="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" 
href="where-do-we-get-the-latest-version-the-framework.html">Where do we get 
the latest version the framework</a>?</li><li><a shape="rect" 
href="what-are-some-of-the-frameworks-best-features.html">What are some of the 
framework's best features</a>?</li><li><a shape="rect" 
href="what-is-the-actioncontext.html">What is the 
ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2></div>
         </div>
 
                     <div class="tabletitle">
@@ -140,6 +140,9 @@ under the License.
                     <span class="smalltext">(Apache Struts 2 
Documentation)</span>
                     <br>
                                     $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 
Documentation)</span>
+                    <br>
+                                    $page.link($child)
                     <span class="smalltext">(Apache Struts 2 
Documentation)</span>
                     <br>
                                     $page.link($child)

Modified: websites/production/struts/content/docs/optiontransferselect.html
==============================================================================
--- websites/production/struts/content/docs/optiontransferselect.html (original)
+++ websites/production/struts/content/docs/optiontransferselect.html Fri Dec  
2 07:17:46 2016
@@ -143,7 +143,7 @@ under the License.
 <div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Important</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 <p></p><p>
 Note that the doublelistkey and doublelistvalue attribute will default to 
"key" and "value"
-respectively only when the doublelist attribute is evaluated to a Map or its 
decendant.
+respectively only when the doublelist attribute is evaluated to a Map or its 
descendant.
 Other thing else, will result in doublelistkey and doublelistvalue to be null 
and not used.
 </p>
 </div></div>

Modified: websites/production/struts/content/docs/param.html
==============================================================================
--- websites/production/struts/content/docs/param.html (original)
+++ websites/production/struts/content/docs/param.html Fri Dec  2 07:17:46 2016
@@ -157,7 +157,7 @@ this class (e.g. The TextTag does this).
 <p></p><p>
 This tag has the following two paramters.
 </p>
-<ul><li>name (String) - the name of the parameter</li><li>value (Object) - the 
value of the parameter</li><li>suppressEmptyParameters (boolean) - whether to 
suppress empty parameters</li></ul>
+<ul><li>name (String) - the name of the parameter</li><li>value (Object) - the 
value of the parameter</li><li>suppressEmptyParameters (boolean) - whether to 
suppress this parameter if empty</li></ul>
 <p>
 <b>Note:</b>
 When you declare the param tag, the value can be defined in either a 
<tt>value</tt> attribute or
@@ -191,13 +191,11 @@ Whether to suppress empty parameters:
 &lt;/p&gt;
 
 &lt;pre&gt;
-&lt;s:a action=&quot;eventAdd&quot; accesskey=&quot;a&quot;&gt;
-  &lt;s:text name=&quot;title.heading.eventadd&quot; /&gt;
+&lt;s:url action=&quot;eventAdd&quot;&gt;
   &lt;s:param name=&quot;bean.searchString&quot; 
value=&quot;%{bean.searchString}&quot; /&gt;
   &lt;s:param name=&quot;bean.filter&quot; value=&quot;%{bean.filter}&quot; 
/&gt;
-  &lt;s:param name=&quot;bean.pageNum&quot; 
value=&quot;%{pager.pageNumber}&quot; /&gt;
-  &lt;s:param name=&quot;suppressEmptyParameters&quot; 
value=&quot;true&quot;/&gt;
-&lt;/s:a&gt;
+  &lt;s:param name=&quot;bean.pageNum&quot; 
value=&quot;%{pager.pageNumber}&quot; suppressEmptyParameters=&quot;true&quot; 
/&gt;
+&lt;/s:url&gt;
 &lt;/pre&gt;
 ]]></script>
 </div></div>

Modified: websites/production/struts/content/docs/plugins.html
==============================================================================
--- websites/production/struts/content/docs/plugins.html (original)
+++ websites/production/struts/content/docs/plugins.html Fri Dec  2 07:17:46 
2016
@@ -187,8 +187,8 @@ under the License.
  */
 --&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;bean 
class=&quot;org.apache.struts2.sitemesh.FreemarkerPageFilter&quot; 
static=&quot;true&quot; optional=&quot;true&quot;/&gt;

Modified: websites/production/struts/content/docs/radio.html
==============================================================================
--- websites/production/struts/content/docs/radio.html (original)
+++ websites/production/struts/content/docs/radio.html Fri Dec  2 07:17:46 2016
@@ -142,7 +142,7 @@ under the License.
 <div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Important</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 <p></p><p>
 Note that the listkey and listvalue attribute will default to "key" and "value"
-respectively only when the list attribute is evaluated to a Map or its 
decendant.
+respectively only when the list attribute is evaluated to a Map or its 
descendant.
 Everything else will result in listkey and listvalue to be null and not used.
 </p></div></div>
 

Added: websites/production/struts/content/docs/s2-044.html
==============================================================================
--- websites/production/struts/content/docs/s2-044.html (added)
+++ websites/production/struts/content/docs/s2-044.html Fri Dec  2 07:17:46 2016
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License. 
+-->
+<html>
+<head>
+    <link type="text/css" rel="stylesheet" 
href="https://struts.apache.org/css/default.css";>
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
+    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
+    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
+    <script type="text/javascript">
+        SyntaxHighlighter.defaults['toolbar'] = false;
+        SyntaxHighlighter.all();
+    </script>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>S2-044</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a 
href="security-bulletins.html">Security Bulletins</a>&nbsp;&gt;&nbsp;<a 
href="s2-044.html">S2-044</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="https://www.google.com/search"; 
method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the 
logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; 
margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 
2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">S2-044</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; 
margin: 0px;">
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=66853803";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Edit Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=66853803";>Edit
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Browse Space"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW";>Browse 
Space</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=66853803";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add Page"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=66853803";>Add
 Page</a>
+            &nbsp;
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=66853803";>
+                <img 
src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif";
+                     height="16" width="16" border="0" align="absmiddle" 
title="Add News"></a>
+            <a 
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=66853803";>Add
 News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><h2 
id="S2-044-Summary">Summary</h2>Possible DoS attack when using 
<code>URLValidator</code><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Who should read this</p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>All Struts 2 developers and 
users</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Possible DoS attack when using 
URLValidator</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Maximum security rating</p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Low</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Upgrade to <a shape="rect" 
href="version-notes-257.html">Struts 2.5.7</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluen
 ceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Struts 2.5 -<span style="color: rgb(23,35,59);"> Struts 
2.5.5</span></p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Reporter</p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span class="Apple-tab-span">&#160;</span>Jonathan 
Bullock &lt;jonbullock at gmail dot com&gt;</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>CVE-2016-8738</p></td></tr></tbody></table></div><h2 
id="S2-044-Problem">Problem</h2><p>If an application allows enter an URL in a 
form field and built-in <code>URLValidator</code>&#160;is used, it is possible 
to prepare a special URL which will be used to overload server process when 
performing validation of the URL.</p><h2 
id="S2-044-Solution">Solution</h2><p>Upgrade to Apache Struts version 
2.5.7.</p><h2 id="S2-044-Backwardcompatibility">Backward compatibil
 ity</h2><p>No backward incompatibility issues are expected.</p><h2 
id="S2-044-Workaround">Workaround</h2><p>Trim passed value before assigning it 
to a field, e.g.</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;">public String setUserUrl(String userUrl) {
+    this.userUrl = userUrl.trim();
+}</pre>
+</div></div></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>


Reply via email to