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 [3/5] - /websites/production/struts/content/docs/

Modified: websites/production/struts/content/docs/iterator.html
==============================================================================
--- websites/production/struts/content/docs/iterator.html (original)
+++ websites/production/struts/content/docs/iterator.html Wed Jan 27 09:26:50 2016
@@ -151,7 +151,7 @@ java.util.Enumeration, java.util.Map, or
 
 <h1 id="iterator-Parameters">Parameters</h1>
 
-<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">begin</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">0</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">if spe
 cified the iteration will start on that index</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">end</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Size of the 'values' List or array, or 0 if 'step' is negative</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">if specified the iteration will end on that index(inclusive)</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" colspa
 n="1" rowspan="1" valign="top">status</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">If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">step</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">1</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">if specified the iteration index will be increased by this value on each iteration. It can be a negative value, in which case 'begin' must be greater than 'end'</td></tr>
 <tr><td align="left" colspan="1" rowspan="1" valign="top">value</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 iteratable source to iterate over, else an the object itself will be put into a newly created List</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>
+<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">begin</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">0</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">if spe
 cified the iteration will start on that index</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">end</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Size of the 'values' List or array, or 0 if 'step' is negative</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">if specified the iteration will end on that index(inclusive)</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">status</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">If specified, an instanceof IteratorStatus will be pushe
 d into stack upon each iteration</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">step</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">1</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">if specified the iteration index will be increased by this value on each iteration. It can be a negative value, in which case 'begin' must be greater than 'end'</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">value</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 iteratable source to iterate ove
 r, else an the object itself will be put into a newly created List</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>
 
 <h1 id="iterator-Examples">Examples</h1>
 

Modified: websites/production/struts/content/docs/localization.html
==============================================================================
--- websites/production/struts/content/docs/localization.html (original)
+++ websites/production/struts/content/docs/localization.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.rbtoc1441088113804 {padding: 0px;}
-div.rbtoc1441088113804 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1441088113804 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884138831 {padding: 0px;}
+div.rbtoc1453884138831 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884138831 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1441088113804">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884138831">
 <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/merge.html
==============================================================================
--- websites/production/struts/content/docs/merge.html (original)
+++ websites/production/struts/content/docs/merge.html Wed Jan 27 09:26:50 2016
@@ -156,7 +156,7 @@ be the logic.</p>
 
 <h2 id="merge-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">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">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 where the resultant merged iterator will be stored in the stack's context</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">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 w
 here the resultant merged iterator will be stored in the stack's context</td></tr></table></p>
 
 <h2 id="merge-Examples">Examples</h2>
 

Modified: websites/production/struts/content/docs/one-time-steps.html
==============================================================================
--- websites/production/struts/content/docs/one-time-steps.html (original)
+++ websites/production/struts/content/docs/one-time-steps.html Wed Jan 27 09:26:50 2016
@@ -140,11 +140,11 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="Onetimesteps-Content">Content</h1>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440489346579 {padding: 0px;}
-div.rbtoc1440489346579 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1440489346579 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884610727 {padding: 0px;}
+div.rbtoc1453884610727 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884610727 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440489346579">
+/*]]>*/</style><div class="toc-macro rbtoc1453884610727">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#Onetimesteps-Content">Content</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#Onetimesteps-Keysandconfiguration">Keys and configuration</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1.1</span> <a shape="rect" href="#Onetimesteps-CreateandinstallaSSHkey">Create and install a SSH key</a></li><li><span class="TOCOutline">1.1.2</span> <a shape="rect" href="#Onetimesteps-CreateaPGPkey">Create a PGP key</a></li><li><span class="TOCOutline">1.1.3</span> <a shape="rect" href="#Onetimesteps-UpdateMavensettingsforourservers">Update Maven settings for our servers</a></li><li><span class="TOCOutline">1.1.4</span> <a shape="rect" href="#Onetimesteps-IncreaseMemorySettingsforMaven">Increase Memory Settings for Maven</a></li></ul>

Modified: websites/production/struts/content/docs/property.html
==============================================================================
--- websites/production/struts/content/docs/property.html (original)
+++ websites/production/struts/content/docs/property.html Wed Jan 27 09:26:50 2016
@@ -141,7 +141,7 @@ under the License.
             <div id="ConfluenceContent"><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Please make sure you have read the <a shape="rect" href="tag-syntax.html">Tag Syntax</a> document and understand how tag attribute syntax works.</p></div></div><h1 id="property-Description">Description</h1><p></p><p>
 Used to get the property of a <i>value</i>, which will default to the top of
 the stack if none is specified.
-</p><h1 id="property-Parameters">Parameters</h1><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">default</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="l
 eft" colspan="1" rowspan="1" valign="top">The default value to be used if <u>value</u> attribute is null</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escape</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">true</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" valign="top">Deprecated. Use 'escapeHtml'. Whether to escape HTML</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeCsv</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 escape CSV (useful to escape a value for a col
 umn)</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeHtml</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">true</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" valign="top">Whether to escape HTML</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeJavaScript</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 escape Javascript</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeXml</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><t
 d 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 escape XML</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">value</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">&lt;top of stack&gt;</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Object</td><td align="left" colspan="1" rowspan="1" valign="top">Value to be displayed</td></tr></table></p><h1 id="property-Examples">Examples</h1><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</p><h1 id="property-Parameters">Parameters</h1><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">default</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="l
 eft" colspan="1" rowspan="1" valign="top">The default value to be used if <u>value</u> attribute is null</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeCsv</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 escape CSV (useful to escape a value for a column)</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeHtml</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">true</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" valign="top">Whether to escape HTML</td></tr><tr><td alig
 n="left" colspan="1" rowspan="1" valign="top">escapeJavaScript</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 escape Javascript</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">escapeXml</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 escape XML</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">value</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rows
 pan="1" valign="top">&lt;top of stack&gt;</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">Object</td><td align="left" colspan="1" rowspan="1" valign="top">Value to be displayed</td></tr></table></p><h1 id="property-Examples">Examples</h1><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 
 &lt;s:push value=&quot;myBean&quot;&gt;

Modified: websites/production/struts/content/docs/rest-plugin.html
==============================================================================
--- websites/production/struts/content/docs/rest-plugin.html (original)
+++ websites/production/struts/content/docs/rest-plugin.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-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This plugin is only available with Struts 2.1.1 or later</p></div></div><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1443119322444 {padding: 0px;}
-div.rbtoc1443119322444 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443119322444 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884501969 {padding: 0px;}
+div.rbtoc1453884501969 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884501969 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1443119322444">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884501969">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#RESTPlugin-Overview">Overview</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#RESTPlugin-Features">Features</a></li><li><span class="TOCOutline">1.2</span> <a shape="rect" href="#RESTPlugin-MappingRESTURLstoStruts2Actions">Mapping REST URLs to Struts 2 Actions</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.2.1</span> <a shape="rect" href="#RESTPlugin-RESTfulURLMappingLogic">RESTful URL Mapping Logic</a></li></ul>

Modified: websites/production/struts/content/docs/result-configuration.html
==============================================================================
--- websites/production/struts/content/docs/result-configuration.html (original)
+++ websites/production/struts/content/docs/result-configuration.html Wed Jan 27 09:26:50 2016
@@ -139,13 +139,13 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1443767274995 {padding: 0px;}
-div.rbtoc1443767274995 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443767274995 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884188561 {padding: 0px;}
+div.rbtoc1453884188561 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884188561 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1443767274995">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884188561">
 <ul class="toc-indentation"><li><a shape="rect" href="#ResultConfiguration-ResultElements">Result Elements</a>
-<ul class="toc-indentation"><li><a shape="rect" href="#ResultConfiguration-IntelligentDefaults">Intelligent Defaults</a></li></ul>
+<ul class="toc-indentation"><li><a shape="rect" href="#ResultConfiguration-IntelligentDefaults">Intelligent Defaults</a></li><li><a shape="rect" href="#ResultConfiguration-Multiplenames">Multiple names</a></li></ul>
 </li><li><a shape="rect" href="#ResultConfiguration-GlobalResults">Global Results</a></li><li><a shape="rect" href="#ResultConfiguration-DynamicResults">Dynamic Results</a></li></ul>
 </div><p>When an <a shape="rect" href="action.html">action</a> class method completes, it returns a String. The value of the String is used to select a result element. An action mapping will often have a set of results representing different possible outcomes. A standard set of result tokens are defined by the <code>ActionSupport</code> base class.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Predefined result names</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">String SUCCESS = "success";
@@ -188,7 +188,12 @@ String LOGIN   = "login";
     &lt;result name="*"&gt;/hello/Other.jsp&lt;/result&gt;
 &lt;/action&gt;
 </pre>
-</div></div><p><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)"> The name="*" is <strong>not</strong> a wildcard pattern, it is a special name that is only selected if an exact match is not found.</p><p><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warning" alt="(warning)"> In most cases if an action returns an unrecognized result name this would be a programming error and should be fixed.</p><h2 id="ResultConfiguration-GlobalResults">Global Results</h2><p>Most often, results are nested with the action element. But some results apply to multiple actions. In a secure application, a client might try to access a page without being authorized, and many actions may n
 eed access to a "logon" result.</p><p>If actions need to share results, a set of global results can be defined for each package. The framework will first look for a local result nested in the action. If a local match is not found, then the global results are checked.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Defining global results</b></div><div class="codeContent panelContent pdl">
+</div></div><p><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)"> The name="*" is <strong>not</strong> a wildcard pattern, it is a special name that is only selected if an exact match is not found.</p><p><img class="emoticon emoticon-warning" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png" data-emoticon-name="warning" alt="(warning)"> In most cases if an action returns an unrecognized result name this would be a programming error and should be fixed.</p><h3 id="ResultConfiguration-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: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;action name="save"&gt;
+    &lt;result&gt;success.jsp&lt;/result&gt;
+    &lt;result name="error, input"&gt;input-form.jsp&lt;/result&gt;
+&lt;/action&gt;</pre>
+</div></div><p>Such functionality was added in Struts 2.5</p><h2 id="ResultConfiguration-GlobalResults">Global Results</h2><p>Most often, results are nested with the action element. But some results apply to multiple actions. In a secure application, a client might try to access a page without being authorized, and many actions may need access to a "logon" result.</p><p>If actions need to share results, a set of global results can be defined for each package. The framework will first look for a local result nested in the action. If a local match is not found, then the global results are checked.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Defining global results</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;global-results&gt;
     &lt;result name="error"&gt;/Error.jsp&lt;/result&gt;
     &lt;result name="invalid.token"&gt;/Error.jsp&lt;/result&gt;

Modified: websites/production/struts/content/docs/s2-026.html
==============================================================================
--- websites/production/struts/content/docs/s2-026.html (original)
+++ websites/production/struts/content/docs/s2-026.html Wed Jan 27 09:26:50 2016
@@ -138,7 +138,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h2 id="S2-026-Summary">Summary</h2>Special <code>top</code> object can be used to access Struts' internals<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>Manipulation of Struts' internals, altering of user session</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>High</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Update regex used to excluded vulnerable incoming parameters. An upgrade to <a shape="rect" class="ext
 ernal-link" href="http://struts.apache.org/download.cgi#struts23241">Struts 2.3.24.1</a> is recommended.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Struts 2.0.0 - Struts <span style="color: rgb(23,35,59);">Struts 2.3.24</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 style="line-height: 1.42857;">rskvp93 at gmail dot com from </span>Viettel Information Security Center</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(34,34,34);"><a shape="rect" class="external-link" href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5209" rel="nofollow">CVE-2015-5209</a></span></p></td></tr></tbody></table></div><h2 id="S2-026-Problem">Problem</h2><p>ValueStack defines s
 pecial <code>top</code> object which represents root of execution context. It can be used to manipulate Struts' internals or can be used to affect container's settings</p><h2 id="S2-026-Solution">Solution</h2><p>Applying better regex which includes pattern to exclude request parameters trying to use&#160;<code>top</code> object.&#160;We recommend upgrading to Struts 2.3.24.1.</p><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Support for expression using <code>top</code> will be dropped in upcoming Struts version 2.5!</p></div></div><h2 id="S2-026-Backwardcompatibility">Backward compatibility</h2><p>If an application is using parameter named <code>top</code>&#160;to access action's properties, it won't be set on the action. In other case&#160;no backward compatibility problems are expected.</p><h2 id="S2-02
 6-Workaround">Workaround</h2><p>Applying the below patterns will solve the problem as well:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+            <div id="ConfluenceContent"><h2 id="S2-026-Summary">Summary</h2>Special <code>top</code> object can be used to access Struts' internals<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>Manipulation of Struts' internals, altering of user session</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>High</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Recommendation</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Update regex used to excluded vulnerable incoming parameters. An upgrade to <a shape="rect" class="ext
 ernal-link" href="http://struts.apache.org/download.cgi#struts23241">Struts 2.3.24.1</a> is recommended.</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Struts 2.0.0 - Struts <span style="color: rgb(23,35,59);">Struts 2.3.24</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 style="line-height: 1.42857;">rskvp93 at gmail dot com from </span>Viettel Information Security Center</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>CVE Identifier</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(34,34,34);"><a shape="rect" class="external-link" href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5209" rel="nofollow">CVE-2015-5209</a></span></p></td></tr></tbody></table></div><h2 id="S2-026-Problem">Problem</h2><p>ValueStack defines s
 pecial <code>top</code> object which represents root of execution context. It can be used to manipulate Struts' internals or can be used to affect container's settings</p><h2 id="S2-026-Solution">Solution</h2><p>Applying better regex which includes pattern to exclude request parameters trying to use&#160;<code>top</code> object.&#160;We recommend upgrading to Struts 2.3.24.1.</p><h2 id="S2-026-Backwardcompatibility">Backward compatibility</h2><p>If an application is using parameter named <code>top</code>&#160;to access action's properties, it won't be set on the action. In other case&#160;no backward compatibility problems are expected.</p><h2 id="S2-026-Workaround">Workaround</h2><p>Applying the below patterns will solve the problem as well:</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;">"(^|\\%\\{)((#?)(top(\\.|\\['|\\[\")|\\[\\d\\]\\.)?)(dojo|struts|session|request|response|application|servlet(Request|Response|Context)|parameters|context|_memberAccess)(\\.|\\[).*",
 "^(action|method):.*"</pre>
 </div></div></div>

Modified: websites/production/struts/content/docs/sample-announcements.html
==============================================================================
--- websites/production/struts/content/docs/sample-announcements.html (original)
+++ websites/production/struts/content/docs/sample-announcements.html Wed Jan 27 09:26:50 2016
@@ -127,11 +127,11 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="Sampleannouncements-Content">Content</h1>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440489352374 {padding: 0px;}
-div.rbtoc1440489352374 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1440489352374 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884616256 {padding: 0px;}
+div.rbtoc1453884616256 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884616256 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440489352374">
+/*]]>*/</style><div class="toc-macro rbtoc1453884616256">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#Sampleannouncements-Content">Content</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#Sampleannouncements-SampleStrutsAnnotationsRelease/QualityVote">Sample Struts Annotations Release/Quality Vote</a></li><li><span class="TOCOutline">1.2</span> <a shape="rect" href="#Sampleannouncements-SampleTestBuildAnnouncement">Sample Test Build Announcement</a></li><li><span class="TOCOutline">1.3</span> <a shape="rect" href="#Sampleannouncements-SampleRelease/QualityVote">Sample Release/Quality Vote</a></li><li><span class="TOCOutline">1.4</span> <a shape="rect" href="#Sampleannouncements-SampleReleaseAnnouncement">Sample Release Announcement</a></li><li><span class="TOCOutline">1.5</span> <a shape="rect" href="#Sampleannouncements-Fast-TrackinganImportantSecurityRelease">Fast-Tracking an Important Security Release</a></li></ul>
 </li></ul>

Modified: websites/production/struts/content/docs/security.html
==============================================================================
--- websites/production/struts/content/docs/security.html (original)
+++ websites/production/struts/content/docs/security.html Wed Jan 27 09:26:50 2016
@@ -139,15 +139,15 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1440493861559 {padding: 0px;}
-div.rbtoc1440493861559 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1440493861559 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884667082 {padding: 0px;}
+div.rbtoc1453884667082 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884667082 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1440493861559">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884667082">
 <ul class="toc-indentation"><li><a shape="rect" href="#Security-Securitytips">Security tips</a>
-<ul class="toc-indentation"><li><a shape="rect" href="#Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config Browser</a></li><li><a shape="rect" href="#Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix different access levels in the same namespace</a></li><li><a shape="rect" href="#Security-NeverexposeJSPfilesdirectly">Never expose JSP files directly</a></li><li><a shape="rect" href="#Security-DisabledevMode">Disable devMode</a></li></ul>
+<ul class="toc-indentation"><li><a shape="rect" href="#Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config Browser</a></li><li><a shape="rect" href="#Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix different access levels in the same namespace</a></li><li><a shape="rect" href="#Security-NeverexposeJSPfilesdirectly">Never expose JSP files directly</a></li><li><a shape="rect" href="#Security-DisabledevMode">Disable devMode</a></li><li><a shape="rect" href="#Security-UseUTF-8encoding">Use UTF-8 encoding</a></li></ul>
 </li><li><a shape="rect" href="#Security-Internalsecuritymechanism">Internal security mechanism</a>
-<ul class="toc-indentation"><li><a shape="rect" href="#Security-Accessingstaticmethods">Accessing static methods</a></li><li><a shape="rect" href="#Security-OGNLisusedtocallaction'smethods">OGNL is used to call action's methods</a></li><li><a shape="rect" href="#Security-Accepted/Excludedpatterns">Accepted / Excluded patterns</a></li></ul>
+<ul class="toc-indentation"><li><a shape="rect" href="#Security-Accessingstaticmethods">Accessing static methods</a></li><li><a shape="rect" href="#Security-OGNLisusedtocallaction'smethods">OGNL is used to call action's methods</a></li><li><a shape="rect" href="#Security-Accepted/Excludedpatterns">Accepted / Excluded patterns</a></li><li><a shape="rect" href="#Security-StrictMethodInvocation">Strict Method Invocation</a></li></ul>
 </li></ul>
 </div><h3 id="Security-Securitytips">Security tips</h3><p>The Apache Struts 2 doesn't provide any security mechanism - it is just a pure web framework. Below are few tips you should consider during application development with the Apache Struts 2.</p><h4 id="Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config Browser</h4><p><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a>&#160;exposes internal configuration and should be used only during development phase. If you must use it on production site, we strictly recommend restricting access to it - you can use &#160;Basic Authentication or any other security mechanism (e.g. <a shape="rect" class="external-link" href="http://shiro.apache.org/">Apache Shiro</a>)</p><h4 id="Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix different access levels in the same namespace</h4><p>Very often access to different resources is controlled based on URL patterns, see snippet below. Becaus
 e of that you cannot mix actions with different security levels in the same namespace. Always group actions in one namespace by security level.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;security-constraint&gt;
@@ -177,22 +177,18 @@ div.rbtoc1440493861559 li {margin-left:
     &lt;description&gt;Don't assign users to this role&lt;/description&gt;
     &lt;role-name&gt;no-users&lt;/role-name&gt;
 &lt;/security-role&gt;</pre>
-</div></div><p>The best approach is to used the both solutions.</p><h4 id="Security-DisabledevMode">Disable devMode</h4><p>The&#160;<code style="line-height: 1.4285715;">devMode</code> is very useful option back can expose your application presenting too many informations of application's internals. Please always disable the&#160;<code>devMode</code> before deploying your application to a production environment.</p><h3 id="Security-Internalsecuritymechanism">Internal security mechanism</h3><p>The Apache Struts 2 contains internal security manager which blocks access to particular classes and Java packages - it's a OGNL-wide mechanism which means it affects any aspect of the framework ie. incoming parameters, expressions used in JSPs, etc.</p><p>The defaults are as follow:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;constant name="struts.excludedClasses"
-              value="
-                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" /&gt;
-    &lt;!-- this must be valid regex, each '.' in package name must be escaped! --&gt;
-    &lt;constant name="struts.excludedPackageNamePatterns" value="^java\.lang\..*,^ognl.*,^javax.*" /&gt;</pre>
+</div></div><p>The best approach is to used the both solutions.</p><h4 id="Security-DisabledevMode">Disable devMode</h4><p>The&#160;<code style="line-height: 1.4285715;">devMode</code> is very useful option back can expose your application presenting too many informations of application's internals. Please always disable the&#160;<code>devMode</code> before deploying your application to a production environment.</p><h4 id="Security-UseUTF-8encoding">Use UTF-8 encoding</h4><p>Always use&#160;<code>UTF-8</code> encoding when building an application with the Apache Struts 2, when using JSPs please add the following header to each JSP file</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;</pre>
+</div></div><h3 id="Security-Internalsecuritymechanism">Internal security mechanism</h3><p>The Apache Struts 2 contains internal security manager which blocks access to particular classes and Java packages - it's a OGNL-wide mechanism which means it affects any aspect of the framework ie. incoming parameters, expressions used in JSPs, etc.</p><p>There are three options that can be used to configure excluded packages and classes:</p><ul style="list-style-type: square;"><li><code>struts.excludedClasses</code> - comma-separated list of excluded classes</li><li><code>struts.excludedPackageNamePatterns</code> - patterns used to exclude packages based on RegEx - this option is slower than simple string comparison but it's more flexible</li><li><code>struts.excludedPackageNames</code> - comma-separated list of excluded packages, it is used with simple string comparison via&#160;<code>startWith</code> and&#160;<code>equals</code></li></ul><p>The defaults are as follow:</p><div class="code p
 anel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;constant name="struts.excludedClasses"
+          value="com.opensymphony.xwork2.ActionContext" /&gt;
+
+&lt;!-- this must be valid regex, each '.' in package name must be escaped! --&gt;
+&lt;!-- it's more flexible but slower than simple string comparison --&gt;
+&lt;!-- constant name="struts.excludedPackageNamePatterns" value="^java\.lang\..*,^ognl.*,^(?!javax\.servlet\..+)(javax\..+)" / --&gt;
+
+&lt;!-- this is simpler version of the above used with string comparison --&gt;
+&lt;constant name="struts.excludedPackageNames" value="java.lang,ognl,javax" /&gt;</pre>
 </div></div><p>Any expression or target which evaluates to one of these will be blocked and you see a WARN in logs:</p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>[WARNING] Target class [class example.MyBean] or declaring class of member type [public example.MyBean()] are excluded!</pre>
 </div></div><p>In that case&#160;<code>new MyBean()</code> was used to create a new instance of class (inside JSP) - it's blocked because&#160;<code>target</code> of such expression is evaluated to&#160;<code>java.lang.Class</code></p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It is possible to redefine the above constants in <code>struts.xml</code> but try to avoid this and rather change design of your application!</p></div></div><h4 id="Security-Accessingstaticmethods">Accessing static methods</h4><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Support for accessing static methods from expression will be disabled soon, please
  consider re-factoring your application to avoid further problems! Please check <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4348">WW-4348</a>.</p></div></div><h4 id="Security-OGNLisusedtocallaction'smethods">OGNL is used to call action's methods</h4><p>This can impact actions which have large inheritance hierarchy and use the same method's name throughout the hierarchy, this was reported as an issue <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW-4405">WW-4405</a>. See the example below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -216,7 +212,7 @@ public abstract class AbstractAction ext
         // some logic
     }
 }</pre>
-</div></div><p>In such case OGNL cannot properly map which method to call when request is coming. This is do the OGNL limitation. To solve the problem don't use the same method's names through the hierarchy, you can simply change the action's method from&#160;<code>save()</code> to&#160;<code>saveAction()</code>&#160;and leaving annotation as is to allow&#160;<span style="line-height: 1.4285715;">call this action via&#160;</span><code style="line-height: 1.4285715;">/save.action</code><span style="line-height: 1.4285715;"> request.</span></p><h4 id="Security-Accepted/Excludedpatterns"><span style="line-height: 1.4285715;">Accepted / Excluded patterns</span></h4><p><span style="line-height: 1.4285715;">As from version 2.3.20 the framework provides two new interfaces which are used to accept / exclude param names and values -&#160;<a shape="rect" class="external-link" href="http://struts.apache.org/maven/xwork-core/apidocs/com/opensymphony/xwork2/security/AcceptedPatternsChecker.html"
 >AcceptedPatternsChecker</a> and&#160;<a shape="rect" class="external-link" href="http://struts.apache.org/maven/xwork-core/apidocs/com/opensymphony/xwork2/security/ExcludedPatternsChecker.html">ExcludedPatternsChecker</a> with default implementations. These two interfaces are used by&#160;<a shape="rect" href="parameters-interceptor.html">Parameters Interceptor</a> and&#160;<a shape="rect" href="cookie-interceptor.html">Cookie Interceptor</a> to check if param can accepted or must be excluded. If you were using&#160;<code>excludeParams</code> previously please compare patterns used by you with these provided by the framework in default implementation.</span></p></div>
+</div></div><p>In such case OGNL cannot properly map which method to call when request is coming. This is do the OGNL limitation. To solve the problem don't use the same method's names through the hierarchy, you can simply change the action's method from&#160;<code>save()</code> to&#160;<code>saveAction()</code>&#160;and leaving annotation as is to allow&#160;<span style="line-height: 1.4285715;">call this action via&#160;</span><code style="line-height: 1.4285715;">/save.action</code><span style="line-height: 1.4285715;"> request.</span></p><h4 id="Security-Accepted/Excludedpatterns"><span style="line-height: 1.4285715;">Accepted / Excluded patterns</span></h4><p><span style="line-height: 1.4285715;">As from version 2.3.20 the framework provides two new interfaces which are used to accept / exclude param names and values -&#160;<a shape="rect" class="external-link" href="http://struts.apache.org/maven/xwork-core/apidocs/com/opensymphony/xwork2/security/AcceptedPatternsChecker.html"
 >AcceptedPatternsChecker</a> and&#160;<a shape="rect" class="external-link" href="http://struts.apache.org/maven/xwork-core/apidocs/com/opensymphony/xwork2/security/ExcludedPatternsChecker.html">ExcludedPatternsChecker</a> with default implementations. These two interfaces are used by&#160;<a shape="rect" href="parameters-interceptor.html">Parameters Interceptor</a> and&#160;<a shape="rect" href="cookie-interceptor.html">Cookie Interceptor</a> to check if param can accepted or must be excluded. If you were using&#160;<code>excludeParams</code> previously please compare patterns used by you with these provided by the framework in default implementation.</span></p><h4 id="Security-StrictMethodInvocation"><span style="line-height: 1.4285715;">Strict Method Invocation</span></h4><p><span style="line-height: 1.4285715;">This mechanism was introduced in version 2.5. It allows control what methods can be accessed with the bang "!" operator via <a shape="rect" href="action-configuration.htm
 l">Dynamic Method Invocation</a>. Please read more&#160;in Strict Method Invocation section of&#160;<a shape="rect" href="action-configuration.html">Action Configuration</a>.</span></p></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/set.html
==============================================================================
--- websites/production/struts/content/docs/set.html (original)
+++ websites/production/struts/content/docs/set.html Wed Jan 27 09:26:50 2016
@@ -159,7 +159,7 @@ If no scope is specified, it will defaul
 
 <h1 id="set-Parameters">Parameters</h1>
 
-<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">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">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">scope</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">action</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 scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.</td></tr><tr><td align="left" colspan="1" ro
 wspan="1" valign="top">value</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 value that is assigned to the variable named <i>name</i></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>
+<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">scope</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" valign="top">action</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">Th
 e scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">value</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 value that is assigned to the variable named <i>name</i></td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">var</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">Name used to reference th
 e value pushed into the Value Stack</td></tr></table></p>
 
 <h1 id="set-Examples">Examples</h1>
 

Modified: websites/production/struts/content/docs/sort.html
==============================================================================
--- websites/production/struts/content/docs/sort.html (original)
+++ websites/production/struts/content/docs/sort.html Wed Jan 27 09:26:50 2016
@@ -153,7 +153,7 @@ pushed into the stack and poped at the e
 
 <h2 id="sort-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">comparator</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">java.util.Comparator</td><td align="left" colspan="1
 " rowspan="1" valign="top">The comparator to use</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">source</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 iterable source to sort</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">var</td><td align="left" colspan="1" rowspan="1" valign="to
 p">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">comparator</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">java.util.Comparator</td><td align="left" colspan="1
 " rowspan="1" valign="top">The comparator to use</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">source</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 iterable source to sort</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="sort-Examples">Examples</h2>
 

Modified: websites/production/struts/content/docs/struts-2-blank-archetype.html
==============================================================================
--- websites/production/struts/content/docs/struts-2-blank-archetype.html (original)
+++ websites/production/struts/content/docs/struts-2-blank-archetype.html Wed Jan 27 09:26:50 2016
@@ -149,11 +149,11 @@ under the License.
 <p><strong>Contents</strong></p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1440489278291 {padding: 0px;}
-div.rbtoc1440489278291 ul {list-style: none;margin-left: 0px;padding-left: 1em;}
-div.rbtoc1440489278291 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884536773 {padding: 0px;}
+div.rbtoc1453884536773 ul {list-style: none;margin-left: 0px;padding-left: 1em;}
+div.rbtoc1453884536773 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1440489278291">
+/*]]>*/</style><div class="toc-macro rbtoc1453884536773">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#Struts2BlankArchetype-CreatingOurblank-archetypeProject">Creating Our blank-archetype Project</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#Struts2BlankArchetype-Stagingrepository">Staging repository</a></li></ul>
 </li><li><span class="TOCOutline">2</span> <a shape="rect" href="#Struts2BlankArchetype-ProjectStructure">Project Structure</a>

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

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

Modified: websites/production/struts/content/docs/struts-defaultxml.html
==============================================================================
--- websites/production/struts/content/docs/struts-defaultxml.html (original)
+++ websites/production/struts/content/docs/struts-defaultxml.html Wed Jan 27 09:26:50 2016
@@ -175,26 +175,20 @@ under the License.
     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;
@@ -307,7 +301,7 @@ under the License.
     &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;
@@ -357,7 +351,6 @@ under the License.
             &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;
@@ -370,7 +363,6 @@ under the License.
                 &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;
@@ -476,7 +468,6 @@ under the License.
                     &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
@@ -503,6 +494,9 @@ under the License.
         &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;

Modified: websites/production/struts/content/docs/struts-next.html
==============================================================================
--- websites/production/struts/content/docs/struts-next.html (original)
+++ websites/production/struts/content/docs/struts-next.html Wed Jan 27 09:26:50 2016
@@ -125,12 +125,12 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1443768301760{padding:0px;}div.rbtoc1443768301760ul{list-style:disc;margin-left:0px;}div.rbtoc1443768301760li{margin-left:0px;padding-left:0px;}/*]]&gt;*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1443768301760 {padding: 0px;}
-div.rbtoc1443768301760 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443768301760 li {margin-left: 0px;padding-left: 0px;}
+            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1453884611957{padding:0px;}div.rbtoc1453884611957ul{list-style:disc;margin-left:0px;}div.rbtoc1453884611957li{margin-left:0px;padding-left:0px;}/*]]&gt;*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style type="text/css">/*<![CDATA[*/
+div.rbtoc1453884611957 {padding: 0px;}
+div.rbtoc1453884611957 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884611957 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></h3><div class="toc-macro rbtoc1443768301760">
+/*]]>*/</style></h3><div class="toc-macro rbtoc1453884611957">
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-"></a></li></ul>
 <ul><li><a shape="rect" href="#StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</a></li><li><a shape="rect" href="#StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</a></li><li><a shape="rect" href="#StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</a></li></ul>

Modified: websites/production/struts/content/docs/subset.html
==============================================================================
--- websites/production/struts/content/docs/subset.html (original)
+++ websites/production/struts/content/docs/subset.html Wed Jan 27 09:26:50 2016
@@ -148,7 +148,7 @@ perform the subset functionality.</p>
 
 <h2 id="subset-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">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">Indicat
 e the number of entries to be in the resulting subset iterator</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">decider</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.SubsetIteratorFilter.Decider</td><td align="left" colspan="1" rowspan="1" valign="top">Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset 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">Dep
 recated. Use 'var' instead</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">source</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">Indicate the source of which the resulting subset iterator is to be derived base on</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">start</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">Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the 
 resulting subset 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>
+<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">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">Indicat
 e the number of entries to be in the resulting subset iterator</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">decider</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.SubsetIteratorFilter.Decider</td><td align="left" colspan="1" rowspan="1" valign="top">Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">source</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"
 >Indicate the source of which the resulting subset iterator is to be derived base on</td></tr><tr><td align="left" colspan="1" rowspan="1" valign="top">start</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">Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset 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="subset-Examples">Examples</h2>