Modified: 
websites/production/struts/content/docs/how-do-we-get-access-to-the-session.html
==============================================================================
--- 
websites/production/struts/content/docs/how-do-we-get-access-to-the-session.html
 (original)
+++ 
websites/production/struts/content/docs/how-do-we-get-access-to-the-session.html
 Tue Aug 25 07:18:20 2015
@@ -138,39 +138,10 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent">
-<p>You can obtain the session attributes by asking the ActionContext or 
implementing SessionAware. Implementing SessionAware is preferred.</p>
-
-<h2 id="Howdowegetaccesstothesession-AsktheActionContext">Ask the 
ActionContext</h2>
-
-<p>The session attributes 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 attibutes = ActionContext.getContext().getSession();
-</pre>
-</div></div>
-
-<h2 id="Howdowegetaccesstothesession-ImplementSessionAware">Implement 
SessionAware</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)"> Preferred</p>
-<ul><li>Ensure that <code>servletConfig</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>_ servletConfig_</code><em>.</em></li></ul>
-       </li><li>Edit the Action so that it implements the SessionAware 
interface.
-       <ul><li>The SessionAware interface expects a <code>setSession</code> 
method. You may wish to include a companion <code>getSession</code> 
method.</li></ul>
-       </li><li>At runtime, call <code>getSession</code> to obtain a Map 
representing the session attributes.</li><li>Any changes made to the session 
Map are reflected in the actual HttpSessionRequest. You may insert and remove 
session attributes as needed.</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.getSession();
+            <div id="ConfluenceContent"><p>You can obtain the session 
attributes by implementing <code>SessionAware</code> or getting them from 
the&#160;<code>ActionContext</code>.</p><h2 
id="Howdowegetaccesstothesession-ImplementingSessionAware">Implementing&#160;<code>SessionAware</code></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)">&#160;This is the preferred 
mechanism: it makes unit testing easier by allowing simple injection of session 
attributes instead of having to mock the action context or go through an entire 
request process.</p><ul><li>Ensure that the action's stack includes 
the&#160;<code>servletConfig</code>&#160;interceptor.<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)">&#160;<em>The default stack 
includes</em>&#160;<code>servletConfig</code><em>.</em></li></ul></li><li>Ensure
 the action implements the 
<code>SessionAware</code>&#160;interface.<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)">&#160;The&#160;<code>SessionAware</code>&#160;interface defines 
a&#160;<code>setSession</code>&#160;method that sets the session attributes 
into the action.</li></ul></li><li>Changes to the action's session map are 
reflected in the underlying&#160;<code style="line-height: 
1.4285715;">HttpSession</code>. You may query, insert, and remove session 
attributes as needed.</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>The <code>servletConfig</code> 
interceptor looks for actions implementing <code>SessionAware</code> during 
request processing. When it finds them it passes the map of session attributes 
using the action's <code>setSession</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 
<code>SessionAware</code> Action, create your own <code>Map</code> with the 
pertinent session attributes and call <code>setSession</code> as part of the 
test's <span>setup </span>method.</p></div></div><h2 
id="Howdowegetaccesstothesession-AsktheActionContext">Ask the 
ActionContext</h2><p>Session attributes are available from the 
<code>ActionContext</code>&#160;instance, a <code>ThreadLocal</
 code>.</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 attibutes = ActionContext.getContext().getSession();
 </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>servletConfig</code> Interceptor sees that an Action implements 
ParameterAware, it passes a Map of the session attributes to the Action's 
<code>setParameters</code> method. Changes made to the Map are reflected in the 
runtime HttpSessionRequest.</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 SessionAware Action, create your own Map with the pertinent 
session attributes and call <code>setSession</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.acton2.interceptor.SessionAware<br clear="none">
-@see org.apache.struts.acton2.interceptor.<a shape="rect" 
href="servlet-config-interceptor.html">Servlet Config Interceptor</a></p></div>
+</div></div><p><span style="font-size: 14.0px;line-height: 1.4285715;">@see 
</span><a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a></p><p>@see 
org.apache.struts.acton2.interceptor.SessionAware</p><p>@see <a shape="rect" 
href="servlet-config-interceptor.html">org.apache.struts.acton2.interceptor.ServletConfigInterceptor</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 Tue Aug 25 
07:18:20 2015
@@ -138,19 +138,49 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <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>
+
 
 <h2 id="I18nInterceptor-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+
+<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>
 
 <h2 id="I18nInterceptor-ExtendingtheInterceptor">Extending the Interceptor</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><p>
+There are no known extensions points for this interceptor.
+</p>
 
 <h2 id="I18nInterceptor-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<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>
 
         

Modified: websites/production/struts/content/docs/inputconfig-annotation.html
==============================================================================
--- websites/production/struts/content/docs/inputconfig-annotation.html 
(original)
+++ websites/production/struts/content/docs/inputconfig-annotation.html Tue Aug 
25 07:18:20 2015
@@ -140,19 +140,39 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 
id="InputConfigAnnotation-InputConfigAnnotation">InputConfig Annotation</h1>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>Marks a action method that if it's not validated by ValidationInterceptor 
then execute input method or input result.</p>
 
 <h2 id="InputConfigAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>The InputConfig annotation can be applied at method level.</p>
+
 
 <h2 id="InputConfigAnnotation-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p><table class="confluenceTable" summary=""><tr><th colspan="1" rowspan="1" 
class="confluenceTh"> Parameter </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Required </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Default </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Notes </th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">methodName</td><td colspan="1" rowspan="1" 
class="confluenceTd">no</td><td colspan="1" rowspan="1" 
class="confluenceTd"></td><td colspan="1" rowspan="1" 
class="confluenceTd">execute this method if specific</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">resultName</td><td colspan="1" 
rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" 
class="confluenceTd"></td><td colspan="1" rowspan="1" 
class="confluenceTd">return this result if methodName not 
specific</td></tr></table></p>
 
 <h2 id="InputConfigAnnotation-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+public class SampleAction extends ActionSupport {
+
+ public void isValid() throws ValidationException {
+   // validate model object, throw exception if failed
+ }
+
+ @InputConfig(methodName=&quot;input&quot;)
+ public String execute() {
+    // perform action
+    return SUCCESS;
+ }
+ public String input() {
+    // perform some data filling
+    return INPUT;
+ }
+}
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/int-validator.html
==============================================================================
--- websites/production/struts/content/docs/int-validator.html (original)
+++ websites/production/struts/content/docs/int-validator.html Tue Aug 25 
07:18:20 2015
@@ -139,16 +139,49 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 
id="intvalidator-Description">Description</h1>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>Field Validator that checks if the integer specified is within a certain 
range.</p>
 
 <h1 id="intvalidator-Parameters">Parameters</h1>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><ul><li>fieldName - The field name this validator is validating. 
Required if using Plain-Validator Syntax otherwise not required</li><li>min - 
the minimum value (if none is specified, it will not be checked) </li><li>max - 
the maximum value (if none is specified, it will not be checked) </li><li>parse 
- if set to true, minExpression and maxExpression will be evaluated to find 
min/max</li><li>minExpression - expression to calculate the minimum value (if 
none is specified, it will not be checked) </li><li>maxExpression - expression 
to calculate the maximum value (if none is specified, it will not be checked) 
</li></ul>
+
+<p>You can either use the min / max value or minExpression / maxExpression 
(when parse is set to true) -
+using expression can be slightly slower, see the example below.</p>
 
 <div class="confluence-information-macro 
confluence-information-macro-warning"><p class="title">Warning</p><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div></div></div>
+<p>Do not use ${minExpression} and ${maxExpression} as an expression as this 
will turn into infinitive loop!</p></div></div>
 
 <h1 id="intvalidator-Examples">Examples</h1>
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+&lt;validators&gt;
+     &lt;!-- Plain Validator Syntax --&gt;
+     &lt;validator type=&quot;int&quot;&gt;
+         &lt;param name=&quot;fieldName&quot;&gt;age&lt;/param&gt;
+         &lt;param name=&quot;min&quot;&gt;20&lt;/param&gt;
+         &lt;param name=&quot;max&quot;&gt;50&lt;/param&gt;
+         &lt;message&gt;Age needs to be between ${min} and 
${max}&lt;/message&gt;
+     &lt;/validator&gt;
+
+     &lt;!-- Field Validator Syntax --&gt;
+     &lt;field name=&quot;age&quot;&gt;
+         &lt;field-validator type=&quot;int&quot;&gt;
+             &lt;param name=&quot;min&quot;&gt;20&lt;/param&gt;
+             &lt;param name=&quot;max&quot;&gt;50&lt;/param&gt;
+             &lt;message&gt;Age needs to be between ${min} and 
${max}&lt;/message&gt;
+         &lt;/field-validator&gt;
+     &lt;/field&gt;
+
+     &lt;!-- Field Validator Syntax with expression --&gt;
+     &lt;field name=&quot;age&quot;&gt;
+         &lt;field-validator type=&quot;int&quot;&gt;
+             &lt;param 
name=&quot;minExpression&quot;&gt;${minValue}&lt;/param&gt; &lt;!-- will be 
evaluated as: Integer getMinValue() --&gt;
+             &lt;param 
name=&quot;maxExpression&quot;&gt;${maxValue}&lt;/param&gt; &lt;!-- will be 
evaluated as: Integer getMaxValue() --&gt;
+             &lt;message&gt;Age needs to be between ${min} and 
${max}&lt;/message&gt;
+         &lt;/field-validator&gt;
+     &lt;/field&gt;
+&lt;/validators&gt;
+]]></script>
+</div></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 Tue Aug 25 
07:18:20 2015
@@ -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.rbtoc1438273799898 {padding: 0px;}
-div.rbtoc1438273799898 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1438273799898 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440485997157 {padding: 0px;}
+div.rbtoc1440485997157 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1440485997157 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1438273799898">
+/*]]>*/</style></p><div class="toc-macro rbtoc1440485997157">
 <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>
@@ -555,7 +555,30 @@ div.rbtoc1438273799898 li {margin-left:
 
 &lt;/struts&gt;
 ]]></script>
-</div></div><p>Since the <code>struts-default.xml</code> is included in the 
application's configuration by default, all of the predefined interceptors and 
stacks are available "out of the box".</p><h2 
id="Interceptors-FrameworkInterceptors">Framework 
Interceptors</h2><p>Interceptor classes are also defined using a key-value pair 
specified in the Struts configuration file. The names specified below come 
specified in <a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a>. If you extend the 
<code>struts-default</code> package, then you can use the names below. 
Otherwise, they must be defined in your package with a name-class pair 
specified in the &lt;interceptors&gt; tag.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Interceptor</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><a shape="rect" 
href="alias-interceptor.html">Alias Interceptor</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>alias</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Converts similar parameters that may be named 
differently between requests.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="chaining-interceptor.html">Chaining Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>chain</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Makes the previous Action's properties 
available to the current Action. Commonly used together with &lt;result 
type="chain"&gt; (in the previous Action).</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="checkbox-interceptor.html">Checkbox Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>checkbox</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><
 p>Adds automatic checkbox handling code that detect an unchecked checkbox and 
add it as a parameter with a default (usually 'false') value. Uses a specially 
named hidden field to detect unsubmitted checkboxes. The default unchecked 
value is overridable for non-boolean value'd checkboxes.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="cookie-interceptor.html">Cookie Interceptor</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>cookie</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Inject cookie with a certain configurable name / value 
into action. (Since 2.0.7.)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="cookieprovider-interceptor.html">CookieProvider 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>cookieProvider</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Transfer cookies from action to response (Since 
2.3.15.)</p></td></tr
 ><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
 >href="conversion-error-interceptor.html">Conversion Error 
 >Interceptor</a></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>conversionError</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Adds conversion errors from the ActionContext to the 
 >Action's field errors</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><a shape="rect" 
 >href="create-session-interceptor.html">Create Session 
 >Interceptor</a></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>createSession</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Create an HttpSession automatically, useful with 
 >certain Interceptors that require a HttpSession to work properly (like the 
 >TokenInterceptor)</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><a shape="rect" 
 >href="debugginginterceptor.html">DebuggingInterceptor</a></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>debug
 ging</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Provides 
several different debugging screens to provide insight into the data behind the 
page.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" 
href="deprecationinterceptor.html">DeprecationInterceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>deprecation</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>When devMode is on, logs all 
unknown or deprecated settings</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="execute-and-wait-interceptor.html">Execute and Wait 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>execAndWait</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Executes the Action in the background and then sends 
the user off to an intermediate waiting page.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" href="exception-interce
 ptor.html">Exception Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>exception</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Maps exceptions to a result.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="file-upload-interceptor.html">File Upload Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>fileUpload</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>An Interceptor that adds easy 
access to file upload support.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="i18n-interceptor.html">I18n 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>i18n</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Remembers the locale selected for a user's 
session.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="logger-interceptor.html">Logger 
Interceptor</a></p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>logger</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Outputs the name of the 
Action.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="message-store-interceptor.html">Message Store 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>store</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Store and retrieve action messages / errors / field 
errors for action that implements ValidationAware interface into 
session.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="model-driven-interceptor.html">Model Driven Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>modelDriven</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the Action implements 
ModelDriven, pushes the <code>getModel</code> Result onto the Value 
Stack.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><a shape="rect" href="scoped-model-driven-interceptor.html">Scoped 
Model Driven Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>scopedModelDriven</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If the Action implements ScopedModelDriven, the 
interceptor retrieves and stores the model from a scope and sets it on the 
action calling <code>setModel</code>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="parameters-interceptor.html">Parameters Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>params</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets the request parameters onto the 
Action.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="prepare-interceptor.html">Prepare 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>prepare</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If t
 he Action implements Preparable, calls its <code>prepare</code> 
method.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="scope-interceptor.html">Scope Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>scope</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Simple mechanism for storing Action state 
in the session or application scope.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="servlet-config-interceptor.html">Servlet Config 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>servletConfig</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Provide access to Maps representing HttpServletRequest 
and HttpServletResponse.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="static-parameters-interceptor.html">Static Parameters 
Interceptor</a></p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p>staticParams</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Sets the <code>struts.xml</code> defined parameters 
onto the action. These are the &lt;param&gt; tags that are direct children of 
the &lt;action&gt; tag.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="roles-interceptor.html">Roles 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>roles</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Action will only be executed if the user has the 
correct JAAS role.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="timer-interceptor.html">Timer 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>timer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Outputs how long the Action takes to execute (including 
nested Interceptors and View)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect
 " href="token-interceptor.html">Token Interceptor</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>token</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Checks for valid token presence in Action, prevents 
duplicate form submission.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="token-session-interceptor.html">Token Session Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>tokenSession</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Same as Token Interceptor, but 
stores the submitted data in session when handed an invalid 
token</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="validation-interceptor.html">Validation 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>validation</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Performs validation using the validators defined in 
<em>action</em>-validatio
 n.xml</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="default-workflow-interceptor.html">Default Workflow 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>workflow</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Calls the <code>validate</code> method in your Action 
class. If Action errors are created then it returns the <code>INPUT</code> 
view.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="parameter-filter-interceptor.html">Parameter Filter 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>N/A</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Removes parameters from the list of those available to 
Actions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="profiling-interceptor.html">Profiling 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>profiling</p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>Activate profiling 
 >through parameter</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><a shape="rect" 
 >href="multiselect-interceptor.html">Multiselect Interceptor</a></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>multiselect</p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>Like the checkbox interceptor 
 >detects that no value was selected for a field with multiple values (like a 
 >select) and adds an empty parameter</p></td></tr></tbody></table></div><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>Since 2.0.7, Interceptors and 
 >Results with hyphenated names were converted to camelCase. (The former 
 >model-driven is now modelDriven.) The original hyphenated names are retained 
 >as "aliases" until Struts 2.1.0. For clarity
 , the hyphenated versions are not listed here, but might be referenced in 
prior versions of the documentation.</p></div></div><h3 
id="Interceptors-MethodFiltering">Method Filtering</h3><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div><h3 
id="Interceptors-InterceptorParameterOverriding">Interceptor Parameter 
Overriding</h3><p>Interceptor's parameter could be overridden through the 
following ways :</p><p><strong>Method 1</strong>:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Since the <code>struts-default.xml</code> is included in the 
application's configuration by default, all of the predefined interceptors and 
stacks are available "out of the box".</p><h2 
id="Interceptors-FrameworkInterceptors">Framework 
Interceptors</h2><p>Interceptor classes are also defined using a key-value pair 
specified in the Struts configuration file. The names specified below come 
specified in <a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a>. If you extend the 
<code>struts-default</code> package, then you can use the names below. 
Otherwise, they must be defined in your package with a name-class pair 
specified in the &lt;interceptors&gt; tag.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Interceptor</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><a shape="rect" 
href="alias-interceptor.html">Alias Interceptor</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>alias</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Converts similar parameters that may be named 
differently between requests.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="chaining-interceptor.html">Chaining Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>chain</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Makes the previous Action's properties 
available to the current Action. Commonly used together with &lt;result 
type="chain"&gt; (in the previous Action).</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="checkbox-interceptor.html">Checkbox Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>checkbox</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><
 p>Adds automatic checkbox handling code that detect an unchecked checkbox and 
add it as a parameter with a default (usually 'false') value. Uses a specially 
named hidden field to detect unsubmitted checkboxes. The default unchecked 
value is overridable for non-boolean value'd checkboxes.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="cookie-interceptor.html">Cookie Interceptor</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>cookie</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Inject cookie with a certain configurable name / value 
into action. (Since 2.0.7.)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="cookieprovider-interceptor.html">CookieProvider 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>cookieProvider</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Transfer cookies from action to response (Since 
2.3.15.)</p></td></tr
 ><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
 >href="conversion-error-interceptor.html">Conversion Error 
 >Interceptor</a></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>conversionError</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Adds conversion errors from the ActionContext to the 
 >Action's field errors</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><a shape="rect" 
 >href="create-session-interceptor.html">Create Session 
 >Interceptor</a></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>createSession</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Create an HttpSession automatically, useful with 
 >certain Interceptors that require a HttpSession to work properly (like the 
 >TokenInterceptor)</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><a shape="rect" 
 >href="debugginginterceptor.html">DebuggingInterceptor</a></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>debug
 ging</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Provides 
several different debugging screens to provide insight into the data behind the 
page.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" 
href="deprecationinterceptor.html">DeprecationInterceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>deprecation</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>When devMode is on, logs all 
unknown or deprecated settings</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="execute-and-wait-interceptor.html">Execute and Wait 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>execAndWait</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Executes the Action in the background and then sends 
the user off to an intermediate waiting page.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" href="exception-interce
 ptor.html">Exception Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>exception</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Maps exceptions to a result.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="file-upload-interceptor.html">File Upload Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>fileUpload</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>An Interceptor that adds easy 
access to file upload support.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="i18n-interceptor.html">I18n 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>i18n</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Remembers the locale selected for a user's 
session.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="logger-interceptor.html">Logger 
Interceptor</a></p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>logger</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Outputs the name of the 
Action.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="message-store-interceptor.html">Message Store 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>store</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Store and retrieve action messages / errors / field 
errors for action that implements ValidationAware interface into 
session.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="model-driven-interceptor.html">Model Driven Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>modelDriven</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the Action implements 
ModelDriven, pushes the <code>getModel</code> Result onto the Value 
Stack.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><a shape="rect" href="scoped-model-driven-interceptor.html">Scoped 
Model Driven Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>scopedModelDriven</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If the Action implements ScopedModelDriven, the 
interceptor retrieves and stores the model from a scope and sets it on the 
action calling <code>setModel</code>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="parameters-interceptor.html">Parameters Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>params</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets the request parameters onto the 
Action.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="prepare-interceptor.html">Prepare 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>prepare</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If t
 he Action implements Preparable, calls its <code>prepare</code> 
method.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="scope-interceptor.html">Scope Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>scope</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Simple mechanism for storing Action state 
in the session or application scope.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="servlet-config-interceptor.html">Servlet Config 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>servletConfig</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Provide access to Maps representing HttpServletRequest 
and HttpServletResponse.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="static-parameters-interceptor.html">Static Parameters 
Interceptor</a></p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p>staticParams</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Sets the <code>struts.xml</code> defined parameters 
onto the action. These are the &lt;param&gt; tags that are direct children of 
the &lt;action&gt; tag.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="roles-interceptor.html">Roles 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>roles</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Action will only be executed if the user has the 
correct JAAS role.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="timer-interceptor.html">Timer 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>timer</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Outputs how long the Action takes to execute (including 
nested Interceptors and View)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect
 " href="token-interceptor.html">Token Interceptor</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>token</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Checks for valid token presence in Action, prevents 
duplicate form submission.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="token-session-interceptor.html">Token Session Interceptor</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>tokenSession</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Same as Token Interceptor, but 
stores the submitted data in session when handed an invalid 
token</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="validation-interceptor.html">Validation 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>validation</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Performs validation using the validators defined in 
<em>action</em>-validatio
 n.xml</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="default-workflow-interceptor.html">Default Workflow 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>workflow</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Calls the <code>validate</code> method in your Action 
class. If Action errors are created then it returns the <code>INPUT</code> 
view.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="parameter-filter-interceptor.html">Parameter Filter 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>N/A</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Removes parameters from the list of those available to 
Actions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="profiling-interceptor.html">Profiling 
Interceptor</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>profiling</p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>Activate profiling 
 >through parameter</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><a shape="rect" 
 >href="multiselect-interceptor.html">Multiselect Interceptor</a></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>multiselect</p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>Like the checkbox interceptor 
 >detects that no value was selected for a field with multiple values (like a 
 >select) and adds an empty parameter</p></td></tr></tbody></table></div><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>Since 2.0.7, Interceptors and 
 >Results with hyphenated names were converted to camelCase. (The former 
 >model-driven is now modelDriven.) The original hyphenated names are retained 
 >as "aliases" until Struts 2.1.0. For clarity
 , the hyphenated versions are not listed here, but might be referenced in 
prior versions of the documentation.</p></div></div><h3 
id="Interceptors-MethodFiltering">Method Filtering</h3>
+<p></p><p>
+MethodFilterInterceptor is an abstract <code>Interceptor</code> used as
+a base class for interceptors that will filter execution based on method 
+names according to specified included/excluded method lists.</p>
+
+<p></p>
+
+<p>Settable parameters are as follows:</p>
+
+<p></p><ul><li>excludeMethods - method names to be excluded from interceptor 
processing</li><li>includeMethods - method names to be included in interceptor 
processing</li></ul>
+
+<p></p><p></p>
+
+<p><b>NOTE:</b> If method name are available in both includeMethods and 
+excludeMethods, it will be considered as an included method: 
+includeMethods takes precedence over excludeMethods.</p>
+
+<p></p>
+
+<p>Interceptors that extends this capability include:</p>
+
+<p></p><ul><li>TokenInterceptor</li><li>TokenSessionStoreInterceptor</li><li>DefaultWorkflowInterceptor</li><li>ValidationInterceptor</li></ul>
+<h3 id="Interceptors-InterceptorParameterOverriding">Interceptor Parameter 
Overriding</h3><p>Interceptor's parameter could be overridden through the 
following ways :</p><p><strong>Method 1</strong>:</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="myAction" class="myActionClass"&gt;
     &lt;interceptor-ref name="exception"/&gt;
     &lt;interceptor-ref name="alias"/&gt;

Modified: 
websites/production/struts/content/docs/intrangefieldvalidator-annotation.html
==============================================================================
--- 
websites/production/struts/content/docs/intrangefieldvalidator-annotation.html 
(original)
+++ 
websites/production/struts/content/docs/intrangefieldvalidator-annotation.html 
Tue Aug 25 07:18:20 2015
@@ -138,19 +138,30 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent"><p>This validator checks that a 
numeric field has a value within a specified range.
+If neither min nor max is set, nothing will be done.</p>
 
 <h2 id="IntRangeFieldValidatorAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><p>The annotation must be applied at method level.</p>
 
 <h2 id="IntRangeFieldValidatorAnnotation-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p><table class="confluenceTable" summary=""><tr><th colspan="1" rowspan="1" 
class="confluenceTh"> Parameter </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Required </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Default </th><th colspan="1" rowspan="1" 
class="confluenceTh"> Notes </th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">message</td><td colspan="1" rowspan="1" 
class="confluenceTd">yes</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">field error message</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">key</td><td colspan="1" rowspan="1" 
class="confluenceTd">no</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">i18n key from language specific properties 
file.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">messageParams</td><td colspan="1" rowspan="1" 
class="confluenceTd">no</td><td colspan="1" row
 span="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">Additional params to be used to customize message - will 
be evaluated against the Value Stack</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">fieldName</td><td colspan="1" rowspan="1" 
class="confluenceTd">no</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">shortCircuit</td><td colspan="1" rowspan="1" 
class="confluenceTd">no</td><td colspan="1" rowspan="1" 
class="confluenceTd">false</td><td colspan="1" rowspan="1" 
class="confluenceTd">If this validator should be used as 
shortCircuit.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">type</td><td colspan="1" rowspan="1" 
class="confluenceTd">yes</td><td colspan="1" rowspan="1" 
class="confluenceTd">ValidatorType.FIELD</td><td colspan="1" rowspan="1" 
class="confluenceTd">Enum value from Valida
 torType. Either FIELD or SIMPLE can be used here.</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"> min </td><td colspan="1" rowspan="1" 
class="confluenceTd"> no </td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"> Integer property. The minimum the number must 
be.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> 
minExpression </td><td colspan="1" rowspan="1" class="confluenceTd"> no 
</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td 
colspan="1" rowspan="1" class="confluenceTd">OGNL expression used to obtain the 
minimum the number must be.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"> max </td><td colspan="1" rowspan="1" 
class="confluenceTd"> no </td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"> Integer property. The maximum number can be. Can be an 
expression.!</td></tr><tr><td colspan="1" rowspan=
 "1" class="confluenceTd"> maxExpression </td><td colspan="1" rowspan="1" 
class="confluenceTd"> no </td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">OGNL expression used to obtain the maximum number can 
be.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">parse</td><td 
colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" 
class="confluenceTd">false</td><td colspan="1" rowspan="1" 
class="confluenceTd">Enable parsing of min/max value.</td></tr></table></p>
+
+<p></p><p>If neither <em>min</em> nor <em>max</em> is set, nothing will be 
done.</p>
+
+<p></p><p>The values for min and max must be inserted as String values so that 
"0" can be handled as a possible value.</p>
 
 <h2 id="IntRangeFieldValidatorAnnotation-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+@IntRangeFieldValidator(message = &quot;Default message&quot;, key = 
&quot;i18n.key&quot;, shortCircuit = true, min = &quot;0&quot;, max = 
&quot;42&quot;)
+
+@IntRangeFieldValidator(message = &quot;Default message&quot;, key = 
&quot;i18n.key&quot;, shortCircuit = true, minExpression = 
&quot;${minValue}&quot;, maxExpression = &quot;${maxValue}&quot;)
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/key-annotation.html
==============================================================================
--- websites/production/struts/content/docs/key-annotation.html (original)
+++ websites/production/struts/content/docs/key-annotation.html Tue Aug 25 
07:18:20 2015
@@ -138,19 +138,25 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent"><p>Sets the Key for type 
conversion.</p>
 
 <h2 id="KeyAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><p>The Key annotation must be applied at field or method level.</p>
 
 <h2 id="KeyAnnotation-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p><table summary=""><thead><tr><th colspan="1" rowspan="1">Parameter</th><th 
colspan="1" rowspan="1">Required</th><th colspan="1" 
rowspan="1">Default</th><th colspan="1" 
rowspan="1">Description</th></tr></thead><tbody><tr><td colspan="1" 
rowspan="1">value</td><td colspan="1" rowspan="1">no</td><td colspan="1" 
rowspan="1">java.lang.Object.class</td><td colspan="1" rowspan="1">The key 
property value.</td></tr></tbody></table></p>
 
 <h2 id="KeyAnnotation-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+// The key property for User objects within the users collection is the 
&lt;code&gt;userName&lt;/code&gt; attribute.
+@Key( value = java.lang.Long.class )
+private Map&lt;Long, User&gt; userMap;
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/keyproperty-annotation.html
==============================================================================
--- websites/production/struts/content/docs/keyproperty-annotation.html 
(original)
+++ websites/production/struts/content/docs/keyproperty-annotation.html Tue Aug 
25 07:18:20 2015
@@ -138,19 +138,26 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent"><p>Sets the KeyProperty for type 
conversion.</p>
 
 <h2 id="KeyPropertyAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><p>The KeyProperty annotation must be applied at field or method 
level.</p>
+<p>This annotation should be used with Generic types, if the key property of 
the key element needs to be specified.</p>
 
 <h2 id="KeyPropertyAnnotation-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p><table summary=""><thead><tr><th colspan="1" rowspan="1">Parameter</th><th 
colspan="1" rowspan="1">Required</th><th colspan="1" 
rowspan="1">Default</th><th colspan="1" 
rowspan="1">Description</th></tr></thead><tbody><tr><td colspan="1" 
rowspan="1">value</td><td colspan="1" rowspan="1">no</td><td colspan="1" 
rowspan="1">id</td><td colspan="1" rowspan="1">The key property 
value.</td></tr></tbody></table></p>
 
 <h2 id="KeyPropertyAnnotation-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+// The key property for User objects within the users collection is the 
&lt;code&gt;userName&lt;/code&gt; attribute.
+@KeyProperty( value = &quot;userName&quot; )
+protected List&lt;User&gt; users = null;
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/localization.html
==============================================================================
--- websites/production/struts/content/docs/localization.html (original)
+++ websites/production/struts/content/docs/localization.html Tue Aug 25 
07:18:20 2015
@@ -138,7 +138,21 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h2 
id="Localization-Overview">Overview</h2><p>The framework supports 
internationalization (i18n) in the following places:</p><ol><li>the <a 
shape="rect" href="ui-tags.html">UI Tags</a></li><li>Messages and Errors from 
the <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/ValidationAware.html";>ValidationAware</a>
 interface (implemented by <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/ActionSupport.html";>ActionSupport</a>
 and <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/ValidationAwareSupport.html";>ValidationAwareSupport</a>)</li><li>Within
 action classes that extend <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/A
 ctionSupport.html">ActionSupport</a> through the getText() method</li></ol><h2 
id="Localization-ResourceBundleSearchOrder">Resource Bundle Search 
Order</h2><div class="error"><span class="error">Error formatting macro: 
snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><p>For more, see the LocalizedTextUtil class.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Package hierarchy</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div></div></div><h3 id="Localization-Defaultaction'sclass">Default action's 
class</h3><p>If you configure action as follow</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+            <div id="ConfluenceContent"><h2 
id="Localization-Overview">Overview</h2><p>The framework supports 
internationalization (i18n) in the following places:</p><ol><li>the <a 
shape="rect" href="ui-tags.html">UI Tags</a></li><li>Messages and Errors from 
the <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/ValidationAware.html";>ValidationAware</a>
 interface (implemented by <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/ActionSupport.html";>ActionSupport</a>
 and <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/ValidationAwareSupport.html";>ValidationAwareSupport</a>)</li><li>Within
 action classes that extend <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.0.6/struts2-core/apidocs/index.html?com/opensymphony/xwork2/A
 ctionSupport.html">ActionSupport</a> through the getText() method</li></ol><h2 
id="Localization-ResourceBundleSearchOrder">Resource Bundle Search 
Order</h2><p></p><p>Resource bundles are searched in the following order:</p>
+
+<p></p><ol><li>ActionClass.properties</li><li>Interface.properties (every 
interface and sub-interface)</li><li>BaseClass.properties (all the way to 
Object.properties)</li><li>ModelDriven's model (if implements ModelDriven), for 
the model object repeat from 1</li><li>package.properties (of the directory 
where class is located and every parent directory all the way to the root 
directory)</li><li>search up the i18n message key hierarchy 
itself</li><li>global resource properties</li></ol>
+<p>For more, see the LocalizedTextUtil class.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Package hierarchy</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p></p><p>To clarify #5, while 
traversing the package hierarchy, Struts 2 will look for a file 
package.properties:</p>
+com/<br clear="none">
+&#160; acme/<br clear="none">
+&#160; &#160; package.properties<br clear="none">
+&#160; &#160; actions/<br clear="none">
+&#160; &#160; &#160; package.properties<br clear="none">
+&#160; &#160; &#160; FooAction.java<br clear="none">
+&#160; &#160; &#160; FooAction.properties<br clear="none">
+<p>
+If FooAction.properties does not exist, com/acme/action/package.properties 
will be searched for, if
+not found com/acme/package.properties, if not found com/package.properties, 
etc.
+</p></div></div><h3 id="Localization-Defaultaction'sclass">Default action's 
class</h3><p>If you configure action 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;action name="index"&gt;
    &lt;result&gt;/index.jsp&lt;/result&gt;
 &lt;/action&gt;</pre>
@@ -170,7 +184,9 @@ under the License.
 ]]></script>
 </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>Internationalizing SiteMesh 
decorators is possible, but there are quirks. See <a shape="rect" 
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33343";>SiteMesh
 Plugin</a> for more.</p></div></div><h3 
id="Localization-UsingtheKeyattributeofUITags">Using the Key attribute of UI 
Tags</h3><p>The key attribute of most UI tags can be used to retrieve a message 
from a resource bundle:</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;">&lt;s:textfield key="some.key" 
name="textfieldName"/&gt;</pre>
-</div></div><h2 id="Localization-I18nInterceptor">I18n 
Interceptor</h2><p>Essentially, the i18n Interceptor pushes a locale into the 
ActionContext map upon every request. The framework components that support 
localization all utilize the ActionContext locale. See <a shape="rect" 
href="i18n-interceptor.html">I18n Interceptor</a> for details.</p><h2 
id="Localization-GlobalResources(struts.custom.i18n.resources)instruts.properties">Global
 Resources (struts.custom.i18n.resources) in 
<code>struts.properties</code></h2><div class="error"><span class="error">Error 
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, 
Size: 20</span> </div><h2 
id="Localization-FormattingDatesandNumbers">Formatting Dates and 
Numbers</h2><p>See <a shape="rect" 
href="formatting-dates-and-numbers.html">Formatting Dates and Numbers</a> for 
more details and examples.</p><h2 
id="Localization-ComparisonwithStruts1">Comparison with Struts 1</h2><p>Struts 
1 users should be familiar with the appli
 cation.properties resource bundle, where you can put all the messages in the 
application that are going to be translated. Struts 2, though, splits the 
resource bundles per action or model class, and you may end up with duplicated 
messages in those resource bundles. A quick fix for that is to create a file 
called ActionSupport.properties in com/opensymphony/xwork2 and put it on your 
classpath. This will only work well if all your actions subclass XWork2's 
ActionSupport.</p><h2 id="Localization-Next:">Next: <a shape="rect" 
href="type-conversion.html">Type Conversion</a></h2></div>
+</div></div><h2 id="Localization-I18nInterceptor">I18n 
Interceptor</h2><p>Essentially, the i18n Interceptor pushes a locale into the 
ActionContext map upon every request. The framework components that support 
localization all utilize the ActionContext locale. See <a shape="rect" 
href="i18n-interceptor.html">I18n Interceptor</a> for details.</p><h2 
id="Localization-GlobalResources(struts.custom.i18n.resources)instruts.properties">Global
 Resources (struts.custom.i18n.resources) in 
<code>struts.properties</code></h2><p></p><p>
+A global resource bundle could be specified programmatically, as well as the 
locale.
+</p><h2 id="Localization-FormattingDatesandNumbers">Formatting Dates and 
Numbers</h2><p>See <a shape="rect" 
href="formatting-dates-and-numbers.html">Formatting Dates and Numbers</a> for 
more details and examples.</p><h2 
id="Localization-ComparisonwithStruts1">Comparison with Struts 1</h2><p>Struts 
1 users should be familiar with the application.properties resource bundle, 
where you can put all the messages in the application that are going to be 
translated. Struts 2, though, splits the resource bundles per action or model 
class, and you may end up with duplicated messages in those resource bundles. A 
quick fix for that is to create a file called ActionSupport.properties in 
com/opensymphony/xwork2 and put it on your classpath. This will only work well 
if all your actions subclass XWork2's ActionSupport.</p><h2 
id="Localization-Next:">Next: <a shape="rect" href="type-conversion.html">Type 
Conversion</a></h2></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/logger-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/logger-interceptor.html (original)
+++ websites/production/struts/content/docs/logger-interceptor.html Tue Aug 25 
07:18:20 2015
@@ -138,19 +138,39 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent"><p>
+This interceptor logs the start and end of the execution an action (in 
English-only, not internationalized).
+<br clear="none">
+<b>Note:</b>: This interceptor will log at <tt>INFO</tt> level.
+</p>
 
 <h2 id="LoggerInterceptor-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>There are no parameters for this interceptor.</p>
 
 <h2 id="LoggerInterceptor-ExtendingtheInterceptor">Extending the 
Interceptor</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>There are no obvious extensions to the existing interceptor.</p>
 
 <h2 id="LoggerInterceptor-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<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;!-- prints out a message before and after the immediate action execution 
--&gt;
+&lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
+    &lt;interceptor-ref name=&quot;completeStack&quot;/&gt;
+    &lt;interceptor-ref name=&quot;logger&quot;/&gt;
+    &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
+&lt;/action&gt;
+
+&lt;!-- prints out a message before any more interceptors continue and after 
they have finished --&gt;
+&lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
+    &lt;interceptor-ref name=&quot;logger&quot;/&gt;
+    &lt;interceptor-ref name=&quot;completeStack&quot;/&gt;
+    &lt;result name=&quot;success&quot;&gt;good_result.ftl&lt;/result&gt;
+&lt;/action&gt;
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/migration-tools.html
==============================================================================
--- websites/production/struts/content/docs/migration-tools.html (original)
+++ websites/production/struts/content/docs/migration-tools.html Tue Aug 25 
07:18:20 2015
@@ -130,7 +130,7 @@ under the License.
 <ul><li>bridge objects to utilize existing s1 resources, and</li><li>utilities 
to convert resources to s2 equivalents.</li></ul>
 
 
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><img class="emoticon 
emoticon-warning" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/warning.png";
 data-emoticon-name="warning" alt="(warning)"></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p> This is a whiteboard describing tools that 
volunteers <em>might</em> write, given sufficient interest. 
</p></td></tr></tbody></table></div>
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><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)"></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p> This is a whiteboard describing tools that 
volunteers <em>might</em> write, given sufficient interest. 
</p></td></tr></tbody></table></div>
 
 
 <h2 id="MigrationTools-DualProcessor,SharedResources">Dual Processor, Shared 
Resources</h2>

Modified: websites/production/struts/content/docs/model-driven-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/model-driven-interceptor.html 
(original)
+++ websites/production/struts/content/docs/model-driven-interceptor.html Tue 
Aug 25 07:18:20 2015
@@ -138,7 +138,16 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent">
+<p>Watches for ModelDriven actions and adds the action's model on to the value 
stack.</p>
+
+<p></p><p> <b>Note:</b>  The ModelDrivenInterceptor must come before the both 
StaticParametersInterceptor and
+ParametersInterceptor if you want the parameters to be applied to the model.
+</p>
+<p> <b>Note:</b>  The ModelDrivenInterceptor will only push the model into the 
stack when the
+model is not null, else it will be ignored.
+</p>
+
 
 <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 create a Model Driven action, 
implement the <code>ModelDriven</code> interface by adding a <code>model</code> 
property, or at least the accessor.</p>
 
@@ -153,15 +162,30 @@ under the License.
 
 <h2 id="ModelDrivenInterceptor-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+
+<p></p><ul></ul><p></p><ul><li>refreshModelBeforeResult - set to true if you 
want the model to be refreshed on the value stack after action
+execution and before result execution.  The setting is useful if you want to 
change the model instance during the
+action execution phase, like when loading it from the data layer.  This will 
result in getModel() being called at
+least twice.</li></ul><p></p>
+
 
 <h2 id="ModelDrivenInterceptor-ExtendingtheInterceptor">Extending the 
Interceptor</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+
+<p>There are no known extension points to this interceptor.</p>
+
 
 <h2 id="ModelDrivenInterceptor-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<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;modelDriven&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>
 
         

Modified: websites/production/struts/content/docs/obtain-response.html
==============================================================================
--- websites/production/struts/content/docs/obtain-response.html (original)
+++ websites/production/struts/content/docs/obtain-response.html Tue Aug 25 
07:18:20 2015
@@ -151,7 +151,7 @@ under the License.
 
 <h2 id="ObtainResponse-Extensions">Extensions</h2>
 
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Step </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Branching Action </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p> 1a    </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>&#160;</p></th></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p> .1     </p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p> 2a    </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>&#160;</p></th></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p> .1  
    </p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <img class="emoticon emoticon-information" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/information.png";
 data-emoticon-name="information" alt="(info)"> 
</p></td></tr></tbody></table></div>
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Step </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Branching Action </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p> 1a    </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>&#160;</p></th></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p> .1     </p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p> 2a    </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>&#160;</p></th></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p> .1  
    </p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><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)"> 
</p></td></tr></tbody></table></div>
 
 
 <hr>

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 Tue Aug 25 
07:18:20 2015
@@ -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.rbtoc1438274392589 {padding: 0px;}
-div.rbtoc1438274392589 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1438274392589 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486633260 {padding: 0px;}
+div.rbtoc1440486633260 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440486633260 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1438274392589">
+/*]]>*/</style><div class="toc-macro rbtoc1440486633260">
 <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/other-resources.html
==============================================================================
--- websites/production/struts/content/docs/other-resources.html (original)
+++ websites/production/struts/content/docs/other-resources.html Tue Aug 25 
07:18:20 2015
@@ -131,7 +131,7 @@ under the License.
 
 <h3 id="OtherResources-Books">Books</h3>
 
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" 
class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-1590599039";
 rel="nofollow">Practical Apache Struts 2 Web 2.0 Projects</a> (Ian Roughley), 
print-only, full-length, available now! <img class="emoticon 
emoticon-yellow-star" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png";
 data-emoticon-name="yellow-star" alt="(star)"></li><li><a shape="rect" 
class="external-link" href="http://www.infoq.com/minibooks/starting-struts2"; 
rel="nofollow">Starting with Struts 2</a> (Ian Roughley), Free PDF mini-book, 
print version also available.</li><li><a shape="rect" class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-1932394532";
 rel="nofollow">WebWork in Action book</a> (Patrick Ligh
 tbody, Jason Carreira), print only. (<em>Most of WW2 in Action applies to 
Struts 2. The Struts 2 package names changed, and we've added some features, 
but the fundamentals remain the same.</em>)</li><li><a shape="rect" 
class="external-link" href="http://www.manning.com/dbrown/"; 
rel="nofollow">Struts 2 in Action</a> (Don Brown, Chad Michael Davis, Scott 
Stanlick) Some early access chapters available now in PDF.</li><li><a 
shape="rect" class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-0980331609";
 rel="nofollow">Struts 2 Design and Programming</a> (Bud Kurniawan), 
print-only.</li><li><a shape="rect" class="external-link" 
href="http://www.packtpub.com/apache-struts-2-web-application-development-beginners-guide/book";
 rel="nofollow">Apache Struts 2 Web Application Development</a> (Dave Newton)
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" 
class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-1590599039";
 rel="nofollow">Practical Apache Struts 2 Web 2.0 Projects</a> (Ian Roughley), 
print-only, full-length, available now! <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)"></li><li><a shape="rect" 
class="external-link" href="http://www.infoq.com/minibooks/starting-struts2"; 
rel="nofollow">Starting with Struts 2</a> (Ian Roughley), Free PDF mini-book, 
print version also available.</li><li><a shape="rect" class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-1932394532";
 rel="nofollow">WebWork in Action book</a> (Patrick Lightbody, Jaso
 n Carreira), print only. (<em>Most of WW2 in Action applies to Struts 2. The 
Struts 2 package names changed, and we've added some features, but the 
fundamentals remain the same.</em>)</li><li><a shape="rect" 
class="external-link" href="http://www.manning.com/dbrown/"; 
rel="nofollow">Struts 2 in Action</a> (Don Brown, Chad Michael Davis, Scott 
Stanlick) Some early access chapters available now in PDF.</li><li><a 
shape="rect" class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-0980331609";
 rel="nofollow">Struts 2 Design and Programming</a> (Bud Kurniawan), 
print-only.</li><li><a shape="rect" class="external-link" 
href="http://www.packtpub.com/apache-struts-2-web-application-development-beginners-guide/book";
 rel="nofollow">Apache Struts 2 Web Application Development</a> (Dave Newton)
 <h4 id="OtherResources-ComingSoon">Coming Soon</h4></li><li><a shape="rect" 
class="external-link" 
href="http://opensource.atlassian.com/confluence/oss/display/BOOKS/ISBN-0071489908";
 rel="nofollow">Struts 2: The Complete Reference</a> (James Holmes), 
print-only, pre-order only</li></ul>
 </td></tr></tbody></table></div>
 

Modified: 
websites/production/struts/content/docs/parameter-filter-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/parameter-filter-interceptor.html 
(original)
+++ websites/production/struts/content/docs/parameter-filter-interceptor.html 
Tue Aug 25 07:18:20 2015
@@ -138,11 +138,40 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+            <div id="ConfluenceContent">
+<p>The Parameter Filter Interceptor blocks parameters from getting
+to the rest of the stack or your action. You can use multiple 
+parameter filter interceptors for a given action, so, for example,
+you could use one in your default stack that filtered parameters
+you wanted blocked from every action and those you wanted blocked 
+from an individual action you could add an additional interceptor
+for each action.</p>
+
 
 <h2 id="ParameterFilterInterceptor-Parameters">Parameters</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+
+<p></p><ul><li>allowed - a comma delimited list of parameter prefixes
+ that are allowed to pass to the action</li><li>blocked - a comma delimited 
list of parameter prefixes 
+that are not allowed to pass to the action</li><li>defaultBlock - boolean 
(default to false) whether by
+default a given parameter is blocked. If true, then a parameter
+must have a prefix in the allowed list in order to be able 
+to pass to the action
+</li></ul>
+
+<p></p><p>The way parameters are filtered for the least configuration is that
+if a string is in the allowed or blocked lists, then any parameter
+that is a member of the object represented by the parameter is allowed
+or blocked respectively.</p>
+
+<p></p><p>For example, if the parameters are:
+</p><ul><li>blocked: 
person,person.address.createDate,personDao</li><li>allowed: 
person.address</li><li>defaultBlock: false</li></ul>
+
+<p></p><p>
+The parameters person.name, person.phoneNum etc would be blocked 
+because 'person' is in the blocked list. However, person.address.street
+and person.address.city would be allowed because person.address is
+in the allowed list (the longer string determines permissions).</p> 
 
 <h2 id="ParameterFilterInterceptor-Example">Example</h2>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">


Reply via email to