struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lukaszlen...@apache.org
Subject svn commit: r963014 [1/7] - /websites/production/struts/content/docs/
Date Tue, 25 Aug 2015 07:18:22 GMT
Author: lukaszlenart
Date: Tue Aug 25 07:18:20 2015
New Revision: 963014

Log:
Updates production

Added:
    websites/production/struts/content/docs/s2-025.html
Modified:
    websites/production/struts/content/docs/action-chaining.html
    websites/production/struts/content/docs/action-configuration.html
    websites/production/struts/content/docs/actionmapper.html
    websites/production/struts/content/docs/after-annotation.html
    websites/production/struts/content/docs/ajax-and-javascript-recipes.html
    websites/production/struts/content/docs/alias-interceptor.html
    websites/production/struts/content/docs/annotationworkflowinterceptor.html
    websites/production/struts/content/docs/before-annotation.html
    websites/production/struts/content/docs/beforeresult-annotation.html
    websites/production/struts/content/docs/bootstrap.html
    websites/production/struts/content/docs/building-struts-2-fast-track-release.html
    websites/production/struts/content/docs/building-struts-2-normal-release.html
    websites/production/struts/content/docs/building-struts-annotations.html
    websites/production/struts/content/docs/building-struts-master.html
    websites/production/struts/content/docs/cdi-plugin.html
    websites/production/struts/content/docs/chain-result.html
    websites/production/struts/content/docs/conditionalvisitor-validator.html
    websites/production/struts/content/docs/configuration-elements.html
    websites/production/struts/content/docs/convention-plugin.html
    websites/production/struts/content/docs/conversion-annotation.html
    websites/production/struts/content/docs/conversion-error-interceptor.html
    websites/production/struts/content/docs/conversion-validator.html
    websites/production/struts/content/docs/conversionerrorfieldvalidator-annotation.html
    websites/production/struts/content/docs/cookbook.html
    websites/production/struts/content/docs/create-action.html
    websites/production/struts/content/docs/createifnull-annotation.html
    websites/production/struts/content/docs/customvalidator-annotation.html
    websites/production/struts/content/docs/date-validator.html
    websites/production/struts/content/docs/daterangefieldvalidator-annotation.html
    websites/production/struts/content/docs/default-workflow-interceptor.html
    websites/production/struts/content/docs/devmode.html
    websites/production/struts/content/docs/double-validator.html
    websites/production/struts/content/docs/doublerangefieldvalidator-annotation.html
    websites/production/struts/content/docs/editing-the-documentation.html
    websites/production/struts/content/docs/element-annotation.html
    websites/production/struts/content/docs/email-validator.html
    websites/production/struts/content/docs/emailvalidator-annotation.html
    websites/production/struts/content/docs/exception-interceptor.html
    websites/production/struts/content/docs/execute-action.html
    websites/production/struts/content/docs/expression-validator.html
    websites/production/struts/content/docs/expressionvalidator-annotation.html
    websites/production/struts/content/docs/fieldexpression-validator.html
    websites/production/struts/content/docs/fieldexpressionvalidator-annotation.html
    websites/production/struts/content/docs/file-upload.html
    websites/production/struts/content/docs/freemarker.html
    websites/production/struts/content/docs/home.html
    websites/production/struts/content/docs/how-do-we-get-access-to-the-session.html
    websites/production/struts/content/docs/i18n-interceptor.html
    websites/production/struts/content/docs/inputconfig-annotation.html
    websites/production/struts/content/docs/int-validator.html
    websites/production/struts/content/docs/interceptors.html
    websites/production/struts/content/docs/intrangefieldvalidator-annotation.html
    websites/production/struts/content/docs/key-annotation.html
    websites/production/struts/content/docs/keyproperty-annotation.html
    websites/production/struts/content/docs/localization.html
    websites/production/struts/content/docs/logger-interceptor.html
    websites/production/struts/content/docs/migration-tools.html
    websites/production/struts/content/docs/model-driven-interceptor.html
    websites/production/struts/content/docs/obtain-response.html
    websites/production/struts/content/docs/one-time-steps.html
    websites/production/struts/content/docs/other-resources.html
    websites/production/struts/content/docs/parameter-filter-interceptor.html
    websites/production/struts/content/docs/parameters-interceptor.html
    websites/production/struts/content/docs/portlet-configuration.html
    websites/production/struts/content/docs/prepare-interceptor.html
    websites/production/struts/content/docs/profiling.html
    websites/production/struts/content/docs/regex-validator.html
    websites/production/struts/content/docs/regexfieldvalidator-annotation.html
    websites/production/struts/content/docs/release-notes-201.html
    websites/production/struts/content/docs/release-notes-2011.html
    websites/production/struts/content/docs/release-notes-20111.html
    websites/production/struts/content/docs/release-notes-20112.html
    websites/production/struts/content/docs/release-notes-2012.html
    websites/production/struts/content/docs/release-notes-2013.html
    websites/production/struts/content/docs/release-notes-2014.html
    websites/production/struts/content/docs/release-plan-200.html
    websites/production/struts/content/docs/release-plan-201.html
    websites/production/struts/content/docs/release-plan-202.html
    websites/production/struts/content/docs/required-validator.html
    websites/production/struts/content/docs/requiredfieldvalidator-annotation.html
    websites/production/struts/content/docs/requiredstring-validator.html
    websites/production/struts/content/docs/requiredstringvalidator-annotation.html
    websites/production/struts/content/docs/rest-plugin.html
    websites/production/struts/content/docs/sample-announcements.html
    websites/production/struts/content/docs/scoped-model-driven-interceptor.html
    websites/production/struts/content/docs/security-bulletins.html
    websites/production/struts/content/docs/security.html
    websites/production/struts/content/docs/short-validator.html
    websites/production/struts/content/docs/static-parameters-interceptor.html
    websites/production/struts/content/docs/stringlength-validator.html
    websites/production/struts/content/docs/stringlengthfieldvalidator-annotation.html
    websites/production/struts/content/docs/struts-2-blank-archetype.html
    websites/production/struts/content/docs/struts-2-maven-archetypes.html
    websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html
    websites/production/struts/content/docs/struts-next.html
    websites/production/struts/content/docs/struts-tags.html
    websites/production/struts/content/docs/themes-and-templates.html
    websites/production/struts/content/docs/timer-interceptor.html
    websites/production/struts/content/docs/type-conversion.html
    websites/production/struts/content/docs/typeconversion-annotation.html
    websites/production/struts/content/docs/using-freemarker-templates.html
    websites/production/struts/content/docs/validation-annotation.html
    websites/production/struts/content/docs/validation-interceptor.html
    websites/production/struts/content/docs/validation.html
    websites/production/struts/content/docs/validationparameter-annotation.html
    websites/production/struts/content/docs/validations-annotation.html
    websites/production/struts/content/docs/visitor-validator.html
    websites/production/struts/content/docs/visitorfieldvalidator-annotation.html
    websites/production/struts/content/docs/weblogic-61.html
    websites/production/struts/content/docs/webxml.html
    websites/production/struts/content/docs/why-is-my-action-returning-input-when-the-form-is-filled-out-correctly.html
    websites/production/struts/content/docs/why-would-we-want-to-create-action-objects-from-the-spring-configuration.html

Modified: websites/production/struts/content/docs/action-chaining.html
==============================================================================
--- websites/production/struts/content/docs/action-chaining.html (original)
+++ websites/production/struts/content/docs/action-chaining.html Tue Aug 25 07:18:20 2015
@@ -138,7 +138,30 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>The framework provides the ability to chain multiple actions into a defined sequence or workflow. This feature works by applying a <a shape="rect" href="chain-result.html">Chain Result</a> to a given Action, and intercepting its target Action's invocation with a <a shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>.</p><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Don't Try This at Home</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>As a rule, Action Chaining is not recommended. First explore other options, such as the <a shape="rect" href="redirect-after-post.html">Redirect After Post</a> technique.</p></div></div><h2 id="ActionChaining-ChainResult">Chain Result</h2><p>The <a shape="rect" href="chain-result.html">Chain Result</a> is a result type that invokes an Action w
 ith its own Interceptor Stack and Result. This Interceptor allows an Action to forward requests to a target Action, while propagating the state of the source Action. Below is an example of how to define this sequence.</p><div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div><p>Another action mapping in the same namespace (or the default "" namespace) can be executed after this action mapping (see <a shape="rect" href="configuration-files.html">Configuration Files</a>). An optional "namespace" parameter may also be added to specify an action in a different namespace.</p><h2 id="ActionChaining-ChainingInterceptor">Chaining Interceptor</h2><p>If you need to copy the properties from your previous Actions in the chain to the current action, you should apply the <a shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>. The Interceptor will copy the original parameters from the request,
  and the ValueStack is passed in to the target Action. The source Action is remembered by the ValueStack, allowing the target Action to access the properties of the preceding Action(s) using the ValueStack, and also makes these properties available to the final result of the chain, such as the JSP or Velocity page.</p><p>One common use of Action chaining is to provide lookup lists (like for a dropdown list of states). Since these Actions get put on the ValueStack, their properties will be available in the view. This functionality can also be done using the ActionTag to execute an Action from the display page. You may also use the <a shape="rect" href="redirect-action-result.html">Redirect Action Result</a> to accomplish this.</p><h3 id="ActionChaining-Usewithcare">Use with care</h3><p>Experience shows that chaining should be used with care. If chaining is overused, an application can turn into "spaghetti code". Actions should be treated as a <a shape="rect" class="external-link" hre
 f="http://martinfowler.com/eaaCatalog/transactionScript.html" rel="nofollow">Transaction Script</a>, rather than as methods in a <a shape="rect" class="external-link" href="http://msdn2.microsoft.com/en-us/library/aa291571(VS.71).aspx" rel="nofollow">Business Facade</a>. Be sure to ask yourself why you need to chain from one Action to another. Is a navigational issue, or could the logic in Action2 be pushed back to a support class or business facade so that Action1 can call it too?</p><p>Ideally, Action classes should be as short as possible. All the core logic should be pushed back to a support class or a business facade, so that Actions only call methods. Actions are best used as adapters, rather than as a class where coding logic is defined.</p><h2 id="ActionChaining-Next:">Next: <a shape="rect" href="result-types.html">Result Types</a></h2></div>
+            <div id="ConfluenceContent"><p>The framework provides the ability to chain multiple actions into a defined sequence or workflow. This feature works by applying a <a shape="rect" href="chain-result.html">Chain Result</a> to a given Action, and intercepting its target Action's invocation with a <a shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>.</p><div class="confluence-information-macro confluence-information-macro-tip"><p class="title">Don't Try This at Home</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>As a rule, Action Chaining is not recommended. First explore other options, such as the <a shape="rect" href="redirect-after-post.html">Redirect After Post</a> technique.</p></div></div><h2 id="ActionChaining-ChainResult">Chain Result</h2><p>The <a shape="rect" href="chain-result.html">Chain Result</a> is a result type that invokes an Action w
 ith its own Interceptor Stack and Result. This Interceptor allows an Action to forward requests to a target Action, while propagating the state of the source Action. Below is an example of how to define this sequence.</p><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;package name=&quot;public&quot; extends=&quot;struts-default&quot;&gt;
+    &lt;!-- Chain creatAccount to login, using the default parameter --&gt;
+    &lt;action name=&quot;createAccount&quot; class=&quot;...&quot;&gt;
+        &lt;result type=&quot;chain&quot;&gt;login&lt;/result&gt;
+    &lt;/action&gt;
+
+    &lt;action name=&quot;login&quot; class=&quot;...&quot;&gt;
+        &lt;!-- Chain to another namespace --&gt;
+        &lt;result type=&quot;chain&quot;&gt;
+            &lt;param name=&quot;actionName&quot;&gt;dashboard&lt;/param&gt;
+            &lt;param name=&quot;namespace&quot;&gt;/secure&lt;/param&gt;
+        &lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+
+&lt;package name=&quot;secure&quot; extends=&quot;struts-default&quot; namespace=&quot;/secure&quot;&gt;
+    &lt;action name=&quot;dashboard&quot; class=&quot;...&quot;&gt;
+        &lt;result&gt;dashboard.jsp&lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+]]></script>
+</div></div><p>Another action mapping in the same namespace (or the default "" namespace) can be executed after this action mapping (see <a shape="rect" href="configuration-files.html">Configuration Files</a>). An optional "namespace" parameter may also be added to specify an action in a different namespace.</p><h2 id="ActionChaining-ChainingInterceptor">Chaining Interceptor</h2><p>If you need to copy the properties from your previous Actions in the chain to the current action, you should apply the <a shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>. The Interceptor will copy the original parameters from the request, and the ValueStack is passed in to the target Action. The source Action is remembered by the ValueStack, allowing the target Action to access the properties of the preceding Action(s) using the ValueStack, and also makes these properties available to the final result of the chain, such as the JSP or Velocity page.</p><p>One common use of Action cha
 ining is to provide lookup lists (like for a dropdown list of states). Since these Actions get put on the ValueStack, their properties will be available in the view. This functionality can also be done using the ActionTag to execute an Action from the display page. You may also use the <a shape="rect" href="redirect-action-result.html">Redirect Action Result</a> to accomplish this.</p><h3 id="ActionChaining-Usewithcare">Use with care</h3><p>Experience shows that chaining should be used with care. If chaining is overused, an application can turn into "spaghetti code". Actions should be treated as a <a shape="rect" class="external-link" href="http://martinfowler.com/eaaCatalog/transactionScript.html" rel="nofollow">Transaction Script</a>, rather than as methods in a <a shape="rect" class="external-link" href="http://msdn2.microsoft.com/en-us/library/aa291571(VS.71).aspx" rel="nofollow">Business Facade</a>. Be sure to ask yourself why you need to chain from one Action to another. Is a 
 navigational issue, or could the logic in Action2 be pushed back to a support class or business facade so that Action1 can call it too?</p><p>Ideally, Action classes should be as short as possible. All the core logic should be pushed back to a support class or a business facade, so that Actions only call methods. Actions are best used as adapters, rather than as a class where coding logic is defined.</p><h2 id="ActionChaining-Next:">Next: <a shape="rect" href="result-types.html">Result Types</a></h2></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/action-configuration.html
==============================================================================
--- websites/production/struts/content/docs/action-configuration.html (original)
+++ websites/production/struts/content/docs/action-configuration.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"><p>The action mappings are the basic "unit-of-work" in the framework. Essentially, the action maps an identifier to a handler class. When a request matches the action's name, the framework uses the mapping to determine how to process the request.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438273965116 {padding: 0px;}
-div.rbtoc1438273965116 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1438273965116 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486140481 {padding: 0px;}
+div.rbtoc1440486140481 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1440486140481 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1438273965116">
+/*]]>*/</style></p><div class="toc-macro rbtoc1440486140481">
 <ul class="toc-indentation"><li><a shape="rect" href="#ActionConfiguration-ActionMappings">Action Mappings</a></li><li><a shape="rect" href="#ActionConfiguration-ActionNames">Action Names</a></li><li><a shape="rect" href="#ActionConfiguration-ActionMethods">Action Methods</a></li><li><a shape="rect" href="#ActionConfiguration-WildcardMethod">Wildcard Method</a></li><li><a shape="rect" href="#ActionConfiguration-DynamicMethodInvocation">Dynamic Method Invocation</a></li><li><a shape="rect" href="#ActionConfiguration-ActionSupportDefault">ActionSupport Default</a></li><li><a shape="rect" href="#ActionConfiguration-Post-BackDefault">Post-Back Default</a></li><li><a shape="rect" href="#ActionConfiguration-ActionDefault">Action Default</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#ActionConfiguration-WildcardDefault">Wildcard Default</a></li></ul>
 </li><li><a shape="rect" href="#ActionConfiguration-Next:">Next: Wildcard Mappings</a></li></ul>

Modified: websites/production/struts/content/docs/actionmapper.html
==============================================================================
--- websites/production/struts/content/docs/actionmapper.html (original)
+++ websites/production/struts/content/docs/actionmapper.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"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438273968810 {padding: 0px;}
-div.rbtoc1438273968810 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1438273968810 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486144103 {padding: 0px;}
+div.rbtoc1440486144103 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1440486144103 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1438273968810">
+/*]]>*/</style><div class="toc-macro rbtoc1440486144103">
 <ul class="toc-indentation"><li><a shape="rect" href="#ActionMapper-Description">Description</a></li><li><a shape="rect" href="#ActionMapper-DefaultActionMapper">DefaultActionMapper</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#ActionMapper-Methodprefix">Method prefix</a></li><li><a shape="rect" href="#ActionMapper-Actionprefix">Action prefix</a></li></ul>
 </li><li><a shape="rect" href="#ActionMapper-CustomActionMapper">Custom ActionMapper</a></li><li><a shape="rect" href="#ActionMapper-CompositeActionMapper">CompositeActionMapper</a></li><li><a shape="rect" href="#ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</a></li><li><a shape="rect" href="#ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and ActionMapping objects</a>

Modified: websites/production/struts/content/docs/after-annotation.html
==============================================================================
--- websites/production/struts/content/docs/after-annotation.html (original)
+++ websites/production/struts/content/docs/after-annotation.html Tue Aug 25 07:18:20 2015
@@ -140,19 +140,36 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="AfterAnnotation-AfterAnnotation">After 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 needs to be called after the main action method and the result was
+executed. Return value is ignored.</p>
 
 <h2 id="AfterAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>The After annotation can be applied at method level.</p>
+
 
 <h2 id="AfterAnnotation-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">priority</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1" class="confluenceTd">Priority order of method execution</td></tr></table></p>
 
 <h2 id="AfterAnnotation-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 {
+
+ @After
+ public void isValid() throws ValidationException {
+   // validate model object, throw exception if failed
+ }
+
+ public String execute() {
+    // perform action
+    return SUCCESS;
+ }
+}
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/ajax-and-javascript-recipes.html
==============================================================================
--- websites/production/struts/content/docs/ajax-and-javascript-recipes.html (original)
+++ websites/production/struts/content/docs/ajax-and-javascript-recipes.html Tue Aug 25 07:18:20 2015
@@ -142,11 +142,11 @@ under the License.
 <p>The Dojo plugin will be deprecated on Struts 2.1</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274263779 {padding: 0px;}
-div.rbtoc1438274263779 ul {list-style: none;margin-left: 0px;padding-left: 20px;}
-div.rbtoc1438274263779 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486492139 {padding: 0px;}
+div.rbtoc1440486492139 ul {list-style: none;margin-left: 0px;padding-left: 20px;}
+div.rbtoc1440486492139 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1438274263779">
+/*]]>*/</style><div class="toc-macro rbtoc1440486492139">
 <ul class="toc-indentation"><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Common">Common</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Requests">Requests</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Requestistriggeredbyatopic">Request is triggered by a topic</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Attachedtoanevent">Attached to an event</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Attachedtoaneventonmultiplesources">Attached to an event on multiple sources</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Attachedtomultipleeventsonmultiplesources">Attached to multiple events on multiple sources</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Updatetargetelementwithcontentreturnedfromurl">Update target element with content returned from url</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Updatemultipletargetelementswithcontentreturnedfromurl">Update multiple target elements with content returned from url</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Showindicatorwhilerequestisinprogress">Show indicator while request is
  in progress</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Highlightcontentoftargetwithbluecolor,for2seconds">Highlight content of target with blue color, for 2 seconds</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-ExecuteJavaScriptinthereturnedcontent">Execute JavaScript in the returned content</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Publishatopicbeforetherequest">Publish a topic before the request</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Publishatopicaftertherequest">Publish a topic after the request</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Publishatopiconerror">Publish a topic on error</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Showafixederrormessageonerror">Show a fixed error message on error</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Preventarequest">Prevent a request</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Submitaform(plainform)">Submit a 
 form (plain form)</a></li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Submitaform(usings:formtag)">Submit a form (using s:form tag)</a></li></ul>
 </li><li><a shape="rect" href="#AjaxandJavaScriptRecipes-Div">Div</a>

Modified: websites/production/struts/content/docs/alias-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/alias-interceptor.html (original)
+++ websites/production/struts/content/docs/alias-interceptor.html Tue Aug 25 07:18:20 2015
@@ -138,19 +138,44 @@ 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 aim of this Interceptor is to alias a named parameter to a different named parameter. By acting as the glue
+between actions sharing similar parameters (but with different names), it can help greatly with action chaining.</p>
+
+<p></p><p>Action's alias expressions should be in the form of  <code>#{ "name1" : "alias1", "name2" : "alias2" }</code>.
+This means that assuming an action (or something else in the stack) has a value for the expression named <i>name1</i> and the
+action this interceptor is applied to has a setter named <i>alias1</i>, <i>alias1</i> will be set with the value from
+<i>name1</i>.
+</p>
+
 
 <h2 id="AliasInterceptor-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>aliasesKey (optional) - the name of the action parameter to look for the alias map (by default this is
+<i>aliases</i>).</li></ul><p></p>
+
 
 <h2 id="AliasInterceptor-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>This interceptor does not have any known extension points.</p>
+
 
 <h2 id="AliasInterceptor-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;!-- The value for the foo parameter will be applied as if it were named bar --&gt;
+    &lt;param name=&quot;aliases&quot;&gt;#{ &#39;foo&#39; : &#39;bar&#39; }&lt;/param&gt;
+
+    &lt;interceptor-ref name=&quot;alias&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/annotationworkflowinterceptor.html
==============================================================================
--- websites/production/struts/content/docs/annotationworkflowinterceptor.html (original)
+++ websites/production/struts/content/docs/annotationworkflowinterceptor.html Tue Aug 25 07:18:20 2015
@@ -140,11 +140,54 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="AnnotationWorkflowInterceptor-AnnotationWorkflowInterceptorInterceptor">AnnotationWorkflowInterceptor Interceptor</h1>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><p>Invokes any annotated methods on the action. Specifically, it supports the following
+annotations:</p>
+<ul><li> @Before - will be invoked before the action method. If the returned value is not null, it is
+returned as the action result code</li><li> @BeforeResult - will be invoked after the action method but before the result execution</li><li> @After - will be invoked after the action method and result execution</li></ul>
+
+<p></p><p>There can be multiple methods marked with the same annotations, but the order of their execution
+is not guaranteed. However, the annotated methods on the superclass chain are guaranteed to be invoked before the
+annotated method in the current class in the case of a Before annotations and after, if the annotations is
+After.</p>
 
 <h2 id="AnnotationWorkflowInterceptor-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </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 BaseAnnotatedAction {
+ 	protected String log = &quot;&quot;;
+
+ 	@Before
+ 	public String baseBefore() {
+ 		log = log + &quot;baseBefore-&quot;;
+ 		return null;
+ 	}
+ }
+
+ public class AnnotatedAction extends BaseAnnotatedAction {
+ 	@Before
+ 	public String before() {
+ 		log = log + &quot;before&quot;;
+ 		return null;
+ 	}
+
+ 	public String execute() {
+ 		log = log + &quot;-execute&quot;;
+ 		return Action.SUCCESS;
+ 	}
+
+ 	@BeforeResult
+ 	public void beforeResult() throws Exception {
+ 		log = log +&quot;-beforeResult&quot;;
+ 	}
+
+ 	@After
+ 	public void after() {
+ 		log = log + &quot;-after&quot;;
+ 	}
+ }
+]]></script>
+</div></div>
 <p>Configure a stack in struts.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor:</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;">
@@ -165,7 +208,8 @@ under the License.
 &lt;/action&gt;
 </pre>
 </div></div>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div></div>
+<p></p><p>With the interceptor applied and the action executed on <code>AnnotatedAction</code> the log
+instance variable will contain <code>baseBefore-before-execute-beforeResult-after</code>.</p></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/before-annotation.html
==============================================================================
--- websites/production/struts/content/docs/before-annotation.html (original)
+++ websites/production/struts/content/docs/before-annotation.html Tue Aug 25 07:18:20 2015
@@ -141,19 +141,35 @@ under the License.
             <div id="ConfluenceContent">
 <h1 id="BeforeAnnotation-BeforeAnnotation">Before 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 needs to be executed before the main action method.</p>
 
 <h2 id="BeforeAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>The Before annotation can be applied at method level.</p>
+
 
 <h2 id="BeforeAnnotation-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">priority</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1" class="confluenceTd">Priority order of method execution</td></tr></table></p>
 
 <h2 id="BeforeAnnotation-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 {
+
+ @Before
+ public void isAuthorized() throws AuthenticationException {
+   // authorize request, throw exception if failed
+ }
+
+ public String execute() {
+    // perform secure action
+    return SUCCESS;
+ }
+}
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/beforeresult-annotation.html
==============================================================================
--- websites/production/struts/content/docs/beforeresult-annotation.html (original)
+++ websites/production/struts/content/docs/beforeresult-annotation.html Tue Aug 25 07:18:20 2015
@@ -141,19 +141,35 @@ under the License.
             <div id="ConfluenceContent">
 <h1 id="BeforeResultAnnotation-BeforeResultAnnotation">BeforeResult 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 needs to be executed before the result. Return value is ignored.</p>
 
 <h2 id="BeforeResultAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>The BeforeResult annotation can be applied at method level.</p>
+
 
 <h2 id="BeforeResultAnnotation-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">priority</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd">10</td><td colspan="1" rowspan="1" class="confluenceTd">Priority order of method execution</td></tr></table></p>
 
 <h2 id="BeforeResultAnnotation-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 {
+
+ @BeforeResult
+ public void isValid() throws ValidationException {
+   // validate model object, throw exception if failed
+ }
+
+ public String execute() {
+    // perform action
+    return SUCCESS;
+ }
+}
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/bootstrap.html
==============================================================================
--- websites/production/struts/content/docs/bootstrap.html (original)
+++ websites/production/struts/content/docs/bootstrap.html Tue Aug 25 07:18:20 2015
@@ -130,7 +130,7 @@ under the License.
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="ready-set-go.html">Ready, Set, Go!</a>   </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> We download the framework and get started on an application of our own. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="hello-world.html">Hello World</a>       </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> We present a page with a simple Welcome message. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="using-tags.html">Using Tags</a>        </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> We create a Welcome page with links to other actions in the application. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="coding-actions.html">Coding Actions</a>    </p></td><td colspan="1" rowspan="
 1" class="confluenceTd"><p> We interpret the Logon form, and return a different result code depending on the circumstances.  </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="selecting-results.html">Selecting Results</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> We setup different results for different result codes. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="validating-input.html">Validating Input</a>  </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> We use the validation framework to verify data submitted from a form.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="localizing-output.html">Localizing Output</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> We move the validation messages to a message resource bundle. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rec
 t" href="flying-solo.html">Flying Solo</a>       </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> And, now, you're on your own, but not alone ... </p></td></tr></tbody></table></div>
 
 
-<p><img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"> For more coding examples, see the <a shape="rect" href="cookbook.html">Cookbook</a>.</p>
+<p><img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"> For more coding examples, see the <a shape="rect" href="cookbook.html">Cookbook</a>.</p>
 
 <h2 id="Bootstrap-Next:">Next: <a shape="rect" href="ready-set-go.html">Ready, Set, Go!</a></h2></div>
         </div>

Modified: websites/production/struts/content/docs/building-struts-2-fast-track-release.html
==============================================================================
--- websites/production/struts/content/docs/building-struts-2-fast-track-release.html (original)
+++ websites/production/struts/content/docs/building-struts-2-fast-track-release.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-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This version is outdated! Work-in-progress!</p></div></div><h1 id="BuildingStruts2-Fasttrackrelease-Content">Content</h1><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274399971 {padding: 0px;}
-div.rbtoc1438274399971 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1438274399971 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486640358 {padding: 0px;}
+div.rbtoc1440486640358 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440486640358 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1438274399971">
+/*]]>*/</style></p><div class="toc-macro rbtoc1440486640358">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-BuildingSteps(Struts)">Building Steps (Struts)</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Gettingready">Getting ready</a></li><li><span class="TOCOutline">1.2</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Updateversionofarchetypes">Update version of archetypes</a></li><li><span class="TOCOutline">1.3</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Applysecuritypatch">Apply security patch</a></li><li><span class="TOCOutline">1.4</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Preparerelease">Prepare release</a></li><li><span class="TOCOutline">1.5</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Performtherelease">Perform the release</a></li><li><span class="TOCOutline">1.6</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Movetheassembliestothe/www/people.apache.org/builds/struts/$VERSIONdir">Move the assemblies to the /www/people.apache.org/builds/struts/$VERSION dir</a></li>
 <li><span class="TOCOutline">1.7</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Jirastuff">Jira stuff</a></li><li><span class="TOCOutline">1.8</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Voteonit">Vote on it</a></li><li><span class="TOCOutline">1.9</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Copyfiles">Copy files</a></li><li><span class="TOCOutline">1.10</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Promoterelease">Promote release</a></li><li><span class="TOCOutline">1.11</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Cleanupoldreleases">Clean up old releases</a></li><li><span class="TOCOutline">1.12</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Waitforrsync">Wait for rsync</a></li><li><span class="TOCOutline">1.13</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-(Optional)-UpdateSecurityBulletins">(Optional) - Update Security Bulletins</a></li><li><span class="TOCOu
 tline">1.14</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Updatesite(Strutstoplevelsite)">Update site (Struts top level site)</a></li><li><span class="TOCOutline">1.15</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Updatesite(Struts2site)">Update site (Struts 2 site)</a></li><li><span class="TOCOutline">1.16</span> <a shape="rect" href="#BuildingStruts2-Fasttrackrelease-Postannouncements">Post announcements</a></li></ul>
 </li></ul>

Modified: websites/production/struts/content/docs/building-struts-2-normal-release.html
==============================================================================
--- websites/production/struts/content/docs/building-struts-2-normal-release.html (original)
+++ websites/production/struts/content/docs/building-struts-2-normal-release.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"><h1 id="BuildingStruts2-Normalrelease-Content">Content</h1><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274398816 {padding: 0px;}
-div.rbtoc1438274398816 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1438274398816 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486639213 {padding: 0px;}
+div.rbtoc1440486639213 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440486639213 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1438274398816">
+/*]]>*/</style></p><div class="toc-macro rbtoc1440486639213">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Gettingready">Getting ready</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft Docs when needed</a></li><li><span class="TOCOutline">3</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Besureyourlocalcopyisup-to-date">Be sure your local copy is up-to-date</a></li><li><span class="TOCOutline">4</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Createareleasebranch">Create a release branch</a></li><li><span class="TOCOutline">5</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Preparerelease">Prepare release</a></li><li><span class="TOCOutline">6</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Performtherelease">Perform the release</a></li><li><span class="TOCOutline">7</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Movetheasse
 mblies">Move the assemblies</a></li><li><span class="TOCOutline">8</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Announceavailability">Announce availability</a></li><li><span class="TOCOutline">9</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Cleanuprepository">Clean up repository</a></li><li><span class="TOCOutline">10</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Voteonit">Vote on it</a></li><li><span class="TOCOutline">11</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Copyfiles">Copy files</a></li><li><span class="TOCOutline">12</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Promoterelease">Promote release</a></li><li><span class="TOCOutline">13</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Cleanupoldreleases">Clean up old releases</a></li><li><span class="TOCOutline">14</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Waitforrsync">Wait for rsync</a></li><li><span class="TOCOutline">15</s
 pan> <a shape="rect" href="#BuildingStruts2-Normalrelease-Updatesite">Update site</a></li><li><span class="TOCOutline">16</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Redeploythedocs(Optional)">Redeploy the docs (Optional)</a></li><li><span class="TOCOutline">17</span> <a shape="rect" href="#BuildingStruts2-Normalrelease-Postannouncements">Post announcements</a></li></ul>
 </div><h2 id="BuildingStruts2-Normalrelease-BuildingSteps(Struts)">Building Steps (Struts)</h2><h3 id="BuildingStruts2-Normalrelease-Gettingready">Getting ready</h3><ol><li>Create an "Struts 2.x.y omnibus ticket" ticket in JIRA to refer to in upcoming release related commit comments and for general documentation purposes. Mark it with priority "Blocker".</li><li>Switch to branch&#160;<code>develop</code></li><li>Ensure that the master POM and Struts Annotations have current releases</li><li>Review JIRA for any issues without a fix version set, and for any issues that should be resolved for the pending release.</li><li>Ensure that there are no repositories or pluginRepositories listed in the poms.</li><li>If you have committed all changes regarding the release process, close the omnibus ticket as it is the last open ticket for the upcoming release</li><li>Release the upcoming version in JIRA (under Administration/Manage Releases) and tag the release date</li><li>Add next milestone ve
 rsion to the JIRA roadmap</li><li>Create DONE and TODO filters for the new version, share with all, and remove obsolete TODO filter</li><li>Create a new Version Notes page in Confluence, link from <a shape="rect" href="migration-guide.html">Migration Guide</a>, and link to prior release page and JIRA DONE filters of the version to release</li><li>Export wiki pages and put them under&#160;<code>/docs</code></li></ol><h3 id="BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft Docs when needed</h3><p>Checkout&#160;<code>struts-site</code> project (see details at the bottom of this page) and perform export:</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;">cd struts-site

Modified: websites/production/struts/content/docs/building-struts-annotations.html
==============================================================================
--- websites/production/struts/content/docs/building-struts-annotations.html (original)
+++ websites/production/struts/content/docs/building-struts-annotations.html Tue Aug 25 07:18:20 2015
@@ -140,11 +140,11 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="BuildingStrutsAnnotations-Content">Content</h1>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274395058 {padding: 0px;}
-div.rbtoc1438274395058 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1438274395058 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486635445 {padding: 0px;}
+div.rbtoc1440486635445 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440486635445 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1438274395058">
+/*]]>*/</style><div class="toc-macro rbtoc1440486635445">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#BuildingStrutsAnnotations-Content">Content</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#BuildingStrutsAnnotations-BuildingSteps(StrutsAnnotations)">Building Steps (Struts Annotations)</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1.1</span> <a shape="rect" href="#BuildingStrutsAnnotations-Obtainafreshcheckoutofstrutsannotations">Obtain a fresh check out of struts annotations</a></li><li><span class="TOCOutline">1.1.2</span> <a shape="rect" href="#BuildingStrutsAnnotations-Preparerelease">Prepare release</a></li><li><span class="TOCOutline">1.1.3</span> <a shape="rect" href="#BuildingStrutsAnnotations-Performrelease">Perform release</a></li><li><span class="TOCOutline">1.1.4</span> <a shape="rect" href="#BuildingStrutsAnnotations-SendaVOTEemail">Send a VOTE email</a></li><li><span class="TOCOutline">1.1.5</span> <a shape="rect" href="#BuildingStrutsAnnotations-Promoterelease">Promote release</a></li></ul>

Modified: websites/production/struts/content/docs/building-struts-master.html
==============================================================================
--- websites/production/struts/content/docs/building-struts-master.html (original)
+++ websites/production/struts/content/docs/building-struts-master.html Tue Aug 25 07:18:20 2015
@@ -140,11 +140,11 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="BuildingStrutsMaster-Content">Content</h1>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274407633 {padding: 0px;}
-div.rbtoc1438274407633 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1438274407633 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486652374 {padding: 0px;}
+div.rbtoc1440486652374 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440486652374 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1438274407633">
+/*]]>*/</style><div class="toc-macro rbtoc1440486652374">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#BuildingStrutsMaster-BuildingSteps(Struts)">Building Steps (Struts)</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a shape="rect" href="#BuildingStrutsMaster-Obtainafreshcheckout.">Obtain a fresh checkout.</a></li><li><span class="TOCOutline">1.2</span> <a shape="rect" href="#BuildingStrutsMaster-Changesitetarget">Change site target</a></li><li><span class="TOCOutline">1.3</span> <a shape="rect" href="#BuildingStrutsMaster-Preparerelease">Prepare release</a></li><li><span class="TOCOutline">1.4</span> <a shape="rect" href="#BuildingStrutsMaster-Performtherelease">Perform the release</a></li><li><span class="TOCOutline">1.5</span> <a shape="rect" href="#BuildingStrutsMaster-Announceavailability">Announce availability</a></li><li><span class="TOCOutline">1.6</span> <a shape="rect" href="#BuildingStrutsMaster-Voteonit">Vote on it</a></li><li><span class="TOCOutline">1.7</span> <a shape="rect" href="#BuildingStrutsMaster-Promoterelease">Promote release</a></li><li><span class="TOCOutline">1.8</span> <a shape="rect" href="#BuildingS
 trutsMaster-Waitforrsync">Wait for rsync</a></li><li><span class="TOCOutline">1.9</span> <a shape="rect" href="#BuildingStrutsMaster-Postannouncements">Post announcements</a></li></ul>
 </li></ul>

Modified: websites/production/struts/content/docs/cdi-plugin.html
==============================================================================
--- websites/production/struts/content/docs/cdi-plugin.html (original)
+++ websites/production/struts/content/docs/cdi-plugin.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"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274413095 {padding: 0px;}
-div.rbtoc1438274413095 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1438274413095 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486658285 {padding: 0px;}
+div.rbtoc1440486658285 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1440486658285 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1438274413095">
+/*]]>*/</style><div class="toc-macro rbtoc1440486658285">
 <ul class="toc-indentation"><li><a shape="rect" href="#CDIPlugin-Overview">Overview</a></li><li><a shape="rect" href="#CDIPlugin-Setup">Setup</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CDIPlugin-MavenSetup">Maven Setup</a></li><li><a shape="rect" href="#CDIPlugin-ManualIntegration">Manual Integration</a></li><li><a shape="rect" href="#CDIPlugin-Configuration">Configuration</a></li></ul>
 </li><li><a shape="rect" href="#CDIPlugin-Usage">Usage</a>

Modified: websites/production/struts/content/docs/chain-result.html
==============================================================================
--- websites/production/struts/content/docs/chain-result.html (original)
+++ websites/production/struts/content/docs/chain-result.html Tue Aug 25 07:18:20 2015
@@ -139,15 +139,45 @@ 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>
+
+<p>This result invokes an entire other action, complete with it's own interceptor stack and result.</p>
+
 
 <h1 id="ChainResult-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></ul><p></p><ul><li><b>actionName (default)</b> - the name of the action that will be chained to</li></ul><p></p><ul><li><b>namespace</b> - used to determine which namespace the Action is in that we're chaining. If namespace is null,
+this defaults to the current namespace</li></ul><p></p><ul><li><b>method</b> - used to specify another method on target action to be invoked.
+If null, this defaults to execute method</li></ul><p></p><ul><li><b>skipActions</b> - (optional) the list of comma separated action names for the
+actions that could be chained to</li></ul><p></p>
+
 
 <h1 id="ChainResult-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;package name=&quot;public&quot; extends=&quot;struts-default&quot;&gt;
+    &lt;!-- Chain creatAccount to login, using the default parameter --&gt;
+    &lt;action name=&quot;createAccount&quot; class=&quot;...&quot;&gt;
+        &lt;result type=&quot;chain&quot;&gt;login&lt;/result&gt;
+    &lt;/action&gt;
+
+    &lt;action name=&quot;login&quot; class=&quot;...&quot;&gt;
+        &lt;!-- Chain to another namespace --&gt;
+        &lt;result type=&quot;chain&quot;&gt;
+            &lt;param name=&quot;actionName&quot;&gt;dashboard&lt;/param&gt;
+            &lt;param name=&quot;namespace&quot;&gt;/secure&lt;/param&gt;
+        &lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+
+&lt;package name=&quot;secure&quot; extends=&quot;struts-default&quot; namespace=&quot;/secure&quot;&gt;
+    &lt;action name=&quot;dashboard&quot; class=&quot;...&quot;&gt;
+        &lt;result&gt;dashboard.jsp&lt;/result&gt;
+    &lt;/action&gt;
+&lt;/package&gt;
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/conditionalvisitor-validator.html
==============================================================================
--- websites/production/struts/content/docs/conditionalvisitor-validator.html (original)
+++ websites/production/struts/content/docs/conditionalvisitor-validator.html Tue Aug 25 07:18:20 2015
@@ -139,13 +139,23 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 id="conditionalvisitorvalidator-Description">Description</h1>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>The ConditionalVisitorFieldValidator will forward validation to the VisitorFieldValidator
+only if the expression will evaluate to true.</p>
 
 <h1 id="conditionalvisitorvalidator-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>expression - an OGNL expression which should evaluate to true to pass validation to the VisitorFieldValidator</li></ul>
 
 <h1 id="conditionalvisitorvalidator-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;field name=&quot;colleaguePosition&quot;&gt;
+    &lt;field-validator type=&quot;conditionalvisitor&quot;&gt;
+        &lt;param name=&quot;expression&quot;&gt;reason == &#39;colleague&#39; and colleaguePositionID == &#39;OTHER&#39;&lt;/param&gt;
+        &lt;message&gt;You must select reason Colleague and position Other&lt;/message&gt;
+    &lt;/field-validator&gt;
+&lt;/field&gt;
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/configuration-elements.html
==============================================================================
--- websites/production/struts/content/docs/configuration-elements.html (original)
+++ websites/production/struts/content/docs/configuration-elements.html Tue Aug 25 07:18:20 2015
@@ -134,7 +134,7 @@ under the License.
 
 <p>At runtime, there is a single configuration for an application. Prior to runtime, the configuration is defined through one or more XML documents, including the default <code>struts.xml</code> document. There are several elements that can be configured, including packages, namespaces, includes, actions, results, interceptors, and exceptions.</p>
 
-<p><img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"> See <a shape="rect" href="strutsxml.html">struts.xml</a> for a working example.</p>
+<p><img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"> See <a shape="rect" href="strutsxml.html">struts.xml</a> for a working example.</p>
 
 <h3 id="ConfigurationElements-AdministrativeElements">Administrative Elements</h3>
 
@@ -144,7 +144,7 @@ under the License.
 <h3 id="ConfigurationElements-RequestHandlingElements">Request Handling Elements</h3>
 
 <ul><li><a shape="rect" href="interceptor-configuration.html">Interceptor Configuration</a></li><li><a shape="rect" href="action-configuration.html">Action Configuration</a>
-	<ul><li><a shape="rect" href="wildcard-mappings.html">Wildcard Mappings</a> <img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"></li></ul>
+	<ul><li><a shape="rect" href="wildcard-mappings.html">Wildcard Mappings</a> <img class="emoticon emoticon-light-on" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"></li></ul>
 	</li><li><a shape="rect" href="result-configuration.html">Result Configuration</a></li><li><a shape="rect" href="unknown-handlers.html">Unknown Handlers</a></li></ul>
 
 

Modified: websites/production/struts/content/docs/convention-plugin.html
==============================================================================
--- websites/production/struts/content/docs/convention-plugin.html (original)
+++ websites/production/struts/content/docs/convention-plugin.html Tue Aug 25 07:18:20 2015
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1438274321388 {padding: 0px;}
-div.rbtoc1438274321388 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1438274321388 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1440486564704 {padding: 0px;}
+div.rbtoc1440486564704 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1440486564704 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1438274321388">
+/*]]>*/</style></p><div class="toc-macro rbtoc1440486564704">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a shape="rect" href="#ConventionPlugin-Introduction">Introduction</a></li><li><span class="TOCOutline">2</span> <a shape="rect" href="#ConventionPlugin-Setup">Setup</a></li><li><span class="TOCOutline">3</span> <a shape="rect" href="#ConventionPlugin-ConvertingaCodebehindbasedapplicationtoConvention">Converting a Codebehind based application to Convention</a></li><li><span class="TOCOutline">4</span> <a shape="rect" href="#ConventionPlugin-Helloworld">Hello world</a></li><li><span class="TOCOutline">5</span> <a shape="rect" href="#ConventionPlugin-Codebehindhelloworld">Code behind hello world</a></li><li><span class="TOCOutline">6</span> <a shape="rect" href="#ConventionPlugin-Resultsandresultcodes">Results and result codes</a></li><li><span class="TOCOutline">7</span> <a shape="rect" href="#ConventionPlugin-Chaining">Chaining</a></li><li><span class="TOCOutline">8</span> <a shape="rect" href="#ConventionPlugin-XWork
 packages">XWork packages</a></li><li><span class="TOCOutline">9</span> <a shape="rect" href="#ConventionPlugin-Annotationreference">Annotation reference</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">9.1</span> <a shape="rect" href="#ConventionPlugin-Actionannotation">Action annotation</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">9.1.1</span> <a shape="rect" href="#ConventionPlugin-Applying@Actionand@Actionsattheclasslevel">Applying @Action and @Actions at the class level</a></li></ul>

Modified: websites/production/struts/content/docs/conversion-annotation.html
==============================================================================
--- websites/production/struts/content/docs/conversion-annotation.html (original)
+++ websites/production/struts/content/docs/conversion-annotation.html Tue Aug 25 07:18:20 2015
@@ -138,19 +138,42 @@ 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>A marker annotation for type conversions at Type level.</p>
 
 <h2 id="ConversionAnnotation-Usage">Usage</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>The Conversion annotation must be applied at Type level.</p>
 
 <h2 id="ConversionAnnotation-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">conversion</td><td colspan="1" rowspan="1">no</td><td colspan="1" rowspan="1">&#160;</td><td colspan="1" rowspan="1">used for Type Conversions applied at Type level.</td></tr></tbody></table></p>
 
 <h2 id="ConversionAnnotation-Examples">Examples</h2>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </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[
+@Conversion(
+    conversions = {
+         // key must be the name of a property for which converter should be used
+         @TypeConversion(key = &quot;date&quot;, converter = &quot;org.demo.converter.DateConverter&quot;)
+    }
+)
+public class ConversionAction implements Action {
+
+    private Date date;
+
+    public setDate(Date date) {
+        this.date = date;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+}
+
+]]></script>
+</div></div>
 
 <p>Check also <a shape="rect" href="typeconversion-annotation.html">TypeConversion Annotation</a> for more examples!</p></div>
         </div>

Modified: websites/production/struts/content/docs/conversion-error-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/conversion-error-interceptor.html (original)
+++ websites/production/struts/content/docs/conversion-error-interceptor.html Tue Aug 25 07:18:20 2015
@@ -142,7 +142,17 @@ under the License.
 
 <p>From the Javadocs of the XWork 2 interceptor:</p>
 
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p>ConversionErrorInterceptor adds conversion errors from the ActionContext to the Action's field errors.</p>
+
+<p></p><p>
+This interceptor adds any error found in the ActionContext's conversionErrors map as a field error (provided
+that the action implements ValidationAware). In addition, any field that contains a validation error has its
+original value saved such that any subsequent requests for that value return the original value rather than the value
+in the action. This is important because if the value "abc" is submitted and can't be converted to an int, we want to
+display the original string ("abc") again rather than the int value (likely 0, which would make very little sense to
+the user).
+</p>
+
 
 <p>From the Javadocs of the Struts 2 interceptor:</p>
 

Modified: websites/production/struts/content/docs/conversion-validator.html
==============================================================================
--- websites/production/struts/content/docs/conversion-validator.html (original)
+++ websites/production/struts/content/docs/conversion-validator.html Tue Aug 25 07:18:20 2015
@@ -140,20 +140,114 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent">
 <h1 id="conversionvalidator-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 a conversion error occurred for this field.</p>
 
 <h1 id="conversionvalidator-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></ul>
 
 <h1 id="conversionvalidator-Examples">Examples</h1>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </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;pre&gt;
+    &lt;!-- Plain Validator Syntax --&gt;
+    &lt;validator type=&quot;conversion&quot;&gt;
+    		&lt;param name=&quot;fieldName&quot;&gt;myField&lt;/param&gt;
+         &lt;message&gt;Conversion Error Occurred&lt;/message&gt;
+    &lt;/validator&gt;
+     
+    &lt;!-- Field Validator Syntax --&gt;
+    &lt;field name=&quot;myField&quot;&gt;
+       &lt;field-validator type=&quot;conversion&quot;&gt;
+          &lt;message&gt;Conversion Error Occurred&lt;/message&gt;
+       &lt;/field-validator&gt;
+    &lt;/field&gt;
+&lt;/pre&gt;
+]]></script>
+</div></div>
 
 <h1 id="conversionvalidator-RepopulatingFielduponconversionError">Repopulating Field upon conversion Error</h1>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
-<div class="error"><span class="error">Error formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>
+<p></p><p>
+The capability of auto-repopulating the stack with a fake parameter map when
+a conversion error has occurred can be done with 'repopulateField' property
+set to "true".
+</p>
+
+<p></p><p>
+This is typically useful when one wants to repopulate the field with the original value
+when a conversion error occurred. Eg. with a textfield that only allows an Integer
+(the action class have an Integer field declared), upon conversion error, the incorrectly
+entered integer (maybe a text 'one') will not appear when dispatched back. With 'repopulateField'
+property set to true, it will, meaning the textfield will have 'one' as its value
+upon conversion error.
+</p>
+
+<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;!-- myJspPage.jsp --&gt;
+&lt;ww:form action=&quot;someAction&quot; method=&quot;POST&quot;&gt;
+  ....
+  &lt;ww:textfield
+      label=&quot;My Integer Field&quot;
+      name=&quot;myIntegerField&quot; /&gt;
+  ....
+  &lt;ww:submit /&gt;
+&lt;/ww:form&gt;
+
+]]></script>
+</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;!-- xwork.xml --&gt;
+&lt;xwork&gt;
+&lt;include file=&quot;xwork-default.xml&quot; /&gt;
+....
+&lt;package name=&quot;myPackage&quot; extends=&quot;xwork-default&quot;&gt;
+  ....
+  &lt;action name=&quot;someAction&quot; class=&quot;example.MyActionSupport.java&quot;&gt;
+     &lt;result name=&quot;input&quot;&gt;myJspPage.jsp&lt;/result&gt;
+     &lt;result&gt;success.jsp&lt;/result&gt;
+  &lt;/action&gt;
+  ....
+&lt;/package&gt;
+....
+&lt;/xwork&gt;
+
+]]></script>
+</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[
+
+&lt;!-- MyActionSupport.java --&gt;
+public class MyActionSupport extends ActionSupport {
+   private Integer myIntegerField;
+
+   public Integer getMyIntegerField() { return this.myIntegerField; }
+   public void setMyIntegerField(Integer myIntegerField) {
+      this.myIntegerField = myIntegerField;
+   }
+}
+
+]]></script>
+</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;!-- MyActionSupport-someAction-validation.xml --&gt;
+&lt;validators&gt;
+  ...
+  &lt;field name=&quot;myIntegerField&quot;&gt;
+     &lt;field-validator type=&quot;conversion&quot;&gt;
+        &lt;param name=&quot;repopulateField&quot;&gt;true&lt;/param&gt;
+        &lt;message&gt;Conversion Error (Integer Wanted)&lt;/message&gt;
+     &lt;/field-validator&gt;
+  &lt;/field&gt;
+  ...
+&lt;/validators&gt;
+
+]]></script>
+</div></div>
 </div>
         </div>
 

Modified: websites/production/struts/content/docs/conversionerrorfieldvalidator-annotation.html
==============================================================================
--- websites/production/struts/content/docs/conversionerrorfieldvalidator-annotation.html (original)
+++ websites/production/struts/content/docs/conversionerrorfieldvalidator-annotation.html Tue Aug 25 07:18:20 2015
@@ -138,19 +138,24 @@ 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 if there are any conversion errors for a field and applies them if they exist.
+See <a shape="rect" href="https://struts.apache.org/docs/type-conversion.html#TypeConversion-TypeConversionErrorHandling">Type Conversion Error Handling</a> for details.</p>
 
 <h2 id="ConversionErrorFieldValidatorAnnotation-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 ConversionErrorFieldValidator annotation must be applied at method level.</p>
 
 <h2 id="ConversionErrorFieldValidatorAnnotation-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></table></p>
 
 <h2 id="ConversionErrorFieldValidatorAnnotation-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[
+@ConversionErrorFieldValidator(message = &quot;Default message&quot;, key = &quot;i18n.key&quot;, shortCircuit = true)
+]]></script>
+</div></div></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/cookbook.html
==============================================================================
--- websites/production/struts/content/docs/cookbook.html (original)
+++ websites/production/struts/content/docs/cookbook.html Tue Aug 25 07:18:20 2015
@@ -144,7 +144,7 @@ under the License.
 
 <p><a shape="rect" href="redirect-after-post.html">Redirect After Post</a><br clear="none">
 <a shape="rect" href="groovyresult.html">GroovyResult</a><br clear="none">
-<a shape="rect" href="https://cwiki.apache.org/confluence/display/S2PLUGINS/JFreeChart+Plugin">JFreeChart Plugin</a><br clear="none">
+<a shape="rect" href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33395">JFreeChart Plugin</a><br clear="none">
 <a shape="rect" href="romeresult.html">RomeResult</a></p>
 
 <h2 id="Cookbook-Validation">Validation</h2>

Modified: websites/production/struts/content/docs/create-action.html
==============================================================================
--- websites/production/struts/content/docs/create-action.html (original)
+++ websites/production/struts/content/docs/create-action.html Tue Aug 25 07:18:20 2015
@@ -136,10 +136,10 @@ under the License.
 
 <h2 id="CreateAction-MainSuccessScenario(MSS)">Main Success Scenario (MSS)</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> Action </p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 1 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Create class that implements Action interface. </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <img class="emoticon emoticon-plus" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/add.png" data-emoticon-name="plus" alt="(plus)"> </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 2 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Implement <code>execute</code> method to realize the Action's goal. </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 3 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Defi
 ne other methods as needed. </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 4 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Define Mapping to invoke Action. </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> Action </p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 1 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Create class that implements Action interface. </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <img class="emoticon emoticon-plus" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/add.png" data-emoticon-name="plus" alt="(plus)"> </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 2 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Implement <code>execute</code> method to realize the Action's goal. </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 3 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Define other me
 thods as needed. </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 4 </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Define Mapping to invoke Action. </p></td></tr></tbody></table></div>
 
 
-<h2 id="CreateAction-Extensions">Extensions <img class="emoticon emoticon-plus" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/add.png" data-emoticon-name="plus" alt="(plus)"></h2>
+<h2 id="CreateAction-Extensions">Extensions <img class="emoticon emoticon-plus" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/add.png" data-emoticon-name="plus" alt="(plus)"></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> Utilize base class  </p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> .1   </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Create class that extends ActionSupport class (or equivalent).  </p></td></tr></tbody></table></div>
 

Modified: websites/production/struts/content/docs/createifnull-annotation.html
==============================================================================
--- websites/production/struts/content/docs/createifnull-annotation.html (original)
+++ websites/production/struts/content/docs/createifnull-annotation.html Tue Aug 25 07:18:20 2015
@@ -138,19 +138,24 @@ 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 CreateIfNull for type conversion.</p>
 
 <h2 id="CreateIfNullAnnotation-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 CreateIfNull annotation must be applied at field or method level.</p>
 
 <h2 id="CreateIfNullAnnotation-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">false</td><td colspan="1" rowspan="1">The CreateIfNull property value.</td></tr></tbody></table></p>
 
 <h2 id="CreateIfNullAnnotation-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[
+@CreateIfNull( value = true )
+private List&lt;User&gt; users;
+]]></script>
+</div></div></div>
         </div>
 
         



Mime
View raw message