Modified: websites/production/struts/content/release/2.3.x/docs/guides.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/guides.html (original)
+++ websites/production/struts/content/release/2.3.x/docs/guides.html Fri Nov 
14 07:43:54 2014
@@ -125,29 +125,14 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Our in-depth guides focus on 
specific areas of the framework, such as Views, the Core framework, and 
Third-party Extensions.</p>
-    <div class="aui-message hint shadowed information-macro">
+            <div id="ConfluenceContent"><p>Our in-depth guides focus on 
specific areas of the framework, such as Views, the Core framework, and 
Third-party Extensions.</p>    <div class="aui-message hint shadowed 
information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
                             <p>We started work on a new <a shape="rect" 
href="user-guide.html">User Guide</a>, that should simplify learning process. 
Please feel free to contribute!</p>
                     </div>
     </div>
-
-
-
-
-<h2 id="Guides-CoreDevelopersGuide"><a shape="rect" 
href="core-developers-guide.html">Core Developers Guide</a></h2>
-
-Struts 2 processes requests using three core types: <a shape="rect" 
href="interceptor-configuration.html">interceptors</a>, <a shape="rect" 
href="action-configuration.html">actions</a>, and <a shape="rect" 
href="result-configuration.html">results</a>. Each may be configured via XML or 
annotations.<div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" 
href="tutorials.html">Tutorials</a> - Read me first!</li><li>Developing 
Applications with Struts 2<ul><li><a shape="rect" 
href="nutshell.html">Nutshell</a></li><li><a shape="rect" 
href="ajax.html">AJAX</a></li><li><a shape="rect" 
href="dependency-injection.html">Dependency Injection</a></li><li><a 
shape="rect" href="profiling.html">Profiling</a></li><li><a shape="rect" 
href="debugging.html">Debugging</a></li><li><a shape="rect" 
href="devmode.html">Development 
Mode</a></li></ul></li><li>Configuration<ul><li><a shape="rect" 
href="convention-plugin.html">Co
 nfiguration by Convention</a></li><li><a shape="rect" 
href="annotations.html">Annotations</a></li><li><a shape="rect" 
href="configuration-elements.html">Configuration Elements</a><ul><li><a 
shape="rect" href="action-configuration.html">Actions</a>, <a shape="rect" 
href="wildcard-mappings.html">Wildcard Mappings</a>, <a shape="rect" 
href="bean-configuration.html">Beans</a>, <a shape="rect" 
href="constant-configuration.html">Constants</a></li><li><a shape="rect" 
href="exception-configuration.html">Exceptions</a>, <a shape="rect" 
href="include-configuration.html">Includes</a>, <a shape="rect" 
href="interceptor-configuration.html">Interceptors</a></li><li><a shape="rect" 
href="namespace-configuration.html">Namespaces</a>, <a shape="rect" 
href="package-configuration.html">Packages</a>, <a shape="rect" 
href="result-configuration.html">Results</a></li><li><a shape="rect" 
href="unknown-handlers.html">Unknown Handlers</a>, <a shape="rect" 
href="dispatcher.html">Dispatcher</a></li></ul></li><
 li><a shape="rect" href="configuration-files.html">Configuration 
Files</a><ul><li><a shape="rect" href="webxml.html">web.xml</a></li><li><a 
shape="rect" href="strutsxml.html">struts.xml</a></li><li><a shape="rect" 
href="strutsproperties.html">struts.properties</a></li><li><a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a></li><li><a shape="rect" 
href="velocityproperties.html">velocity.properties</a></li><li><a shape="rect" 
href="struts-defaultvm.html">struts-default.vm</a></li></ul></li><li><a 
shape="rect" href="application-servers.html">Application Servers</a></li><li><a 
shape="rect" href="performance-tuning.html">Performance 
Tuning</a></li></ul></li><li><img class="emoticon emoticon-light-on" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/lightbulb_on.png";
 data-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" 
href="security.html">Security</a></li></ul></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" 
href="testing-actions.html">Testing Actions</a><ul><li><a shape="rect" 
class="external-link" 
href="http://arsenalist.com/2007/06/18/unit-testing-struts-2-actions-spring-junit/";
 rel="nofollow">(arsenalist)</a></li><li><a shape="rect" class="external-link" 
href="http://fassisrosa.blogspot.com/2006/11/unit-testing-struts-20.html"; 
rel="nofollow">(rosa)</a></li></ul></li><li><a shape="rect" 
href="interceptors.html">Interceptors</a><ul><li><a shape="rect" 
href="writing-interceptors.html">Writing Interceptors</a></li><li><a 
shape="rect" 
href="parameters-interceptor.html#ParametersInterceptor-Excludingparameters">Excluding
 Parameters</a></li></ul></li><li>Actions<ul><li><a shape="rect" 
href="model-driven.html">Model Driven</a></li><li><a shape="rect" 
href="action-chaining.html">Action Chaining</a></li><li><a shape="rect" 
href="actioneventlistener.html">ActionEventListener</a></li></ul></li><li>Results<ul><li><a
 shape="rect" href="
 result-types.html">Result Types</a></li><li><a shape="rect" 
href="dispatcherlistener.html">DispatcherListener</a></li><li><a shape="rect" 
href="preresultlistener.html">PreResultListener</a></li></ul></li><li><a 
shape="rect" href="validation.html">Validation</a></li><li><a shape="rect" 
href="localization.html">Localization</a><ul><li><a shape="rect" 
href="formatting-dates-and-numbers.html">Formatting Dates and 
Numbers</a></li></ul></li><li><a shape="rect" href="type-conversion.html">Type 
Conversion</a></li><li><a shape="rect" href="static-content.html">Static 
Content</a></li><li>Portlets<ul><li><a shape="rect" 
href="struts-2-portlet-tutorial.html">Tutorial</a></li><li><a shape="rect" 
href="portlet-plugin.html">Configuration/Documentation</a></li></ul></li><li><a 
shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" 
href="faqs.html">FAQs</a><ul><li><a shape="rect" 
href="struts-2-maven-archetypes.html">Struts 2 Maven Archetypes</a></li><li><a 
shape="rect" href="cookbook.
 html">Cookbook</a></li></ul></li><li><a shape="rect" class="external-link" 
href="http://struts.apache.org/2.x/struts2-core/apidocs/index.html";>Javadoc 
APIs</a></li></ul></td></tr></tbody></table></div>
-
-<h2 id="Guides-TagDevelopersGuide"><a shape="rect" 
href="tag-developers-guide.html">Tag Developers Guide</a></h2>
-
-The framework offers a flexible view layer that supports multiple view 
technologies, including JSP, FreeMaker, and Velocity.<div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><ul><li><a shape="rect" 
href="struts-tags.html">Struts Tags</a><ul><li><a shape="rect" 
href="generic-tags.html">Generic Tags</a></li><li><a shape="rect" 
href="ui-tags.html">UI Tags</a></li><li><a shape="rect" 
href="themes-and-templates.html">Themes and Templates</a></li><li><a 
shape="rect" href="tag-reference.html">Tag Reference</a></li><li><a 
shape="rect" href="ajax-tags.html">Ajax Tags</a><ul><li><a shape="rect" 
href="ajax-and-javascript-recipes.html">Ajax and JavaScript 
Recipes</a></li></ul></li></ul></li><li><a shape="rect" 
href="ognl.html">OGNL</a></li><li><a shape="rect" href="tag-syntax.html">Tag 
Syntax</a></li><li><a shape="rect" href="alt-syntax.html">Alt 
Syntax</a></li></ul></td><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a 
 shape="rect" href="jsp.html">JSP</a><ul><li><a shape="rect" 
href="jsp-tags.html">specific tags</a></li></ul></li><li><a shape="rect" 
href="freemarker.html">FreeMarker</a><ul><li><a shape="rect" 
href="freemarker-tags.html">specific tags</a></li></ul></li><li><a shape="rect" 
href="velocity.html">Velocity</a><ul><li><a shape="rect" 
href="velocity-tags.html">specific 
tags</a></li></ul></li></ul></td></tr></tbody></table></div>
-
-<h2 id="Guides-PluginDevelopersGuide"><a shape="rect" 
href="plugin-developers-guide.html">Plugin Developers Guide</a></h2>
-
-
-<p>Apache Struts 2 provides a simple <a shape="rect" 
href="plugins.html">plugin architecture</a> so that developers can extend the 
framework just by adding a JAR to the application's classpath. Since plugins 
are contained in a JAR, they are easy to share with others. Several plugins are 
bundled with the framework, and others are available from third-party sources. 
</p>
+<h2 id="Guides-CoreDevelopersGuide"><a shape="rect" 
href="core-developers-guide.html">Core Developers Guide</a></h2><p>Struts 2 
processes requests using three core types: <a shape="rect" 
href="interceptor-configuration.html">interceptors</a>, <a shape="rect" 
href="action-configuration.html">actions</a>, and <a shape="rect" 
href="result-configuration.html">results</a>. Each may be configured via XML or 
annotations.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" 
href="tutorials.html">Tutorials</a> - Read me first!</li><li>Developing 
Applications with Struts 2<ul><li><a shape="rect" 
href="nutshell.html">Nutshell</a></li><li><a shape="rect" 
href="ajax.html">AJAX</a></li><li><a shape="rect" 
href="dependency-injection.html">Dependency Injection</a></li><li><a 
shape="rect" href="profiling.html">Profiling</a></li><li><a shape="rect" 
href="debugging.html">Debugging</a></li><li><a shape="rect" href=
 "devmode.html">Development Mode</a></li></ul></li><li>Configuration<ul><li><a 
shape="rect" href="convention-plugin.html">Configuration by 
Convention</a></li><li><a shape="rect" 
href="annotations.html">Annotations</a></li><li><a shape="rect" 
href="configuration-elements.html">Configuration Elements</a><ul><li><a 
shape="rect" href="action-configuration.html">Actions</a>, <a shape="rect" 
href="wildcard-mappings.html">Wildcard Mappings</a>, <a shape="rect" 
href="bean-configuration.html">Beans</a>, <a shape="rect" 
href="constant-configuration.html">Constants</a></li><li><a shape="rect" 
href="exception-configuration.html">Exceptions</a>, <a shape="rect" 
href="include-configuration.html">Includes</a>, <a shape="rect" 
href="interceptor-configuration.html">Interceptors</a></li><li><a shape="rect" 
href="namespace-configuration.html">Namespaces</a>, <a shape="rect" 
href="package-configuration.html">Packages</a>, <a shape="rect" 
href="result-configuration.html">Results</a></li><li><a shape="rec
 t" href="unknown-handlers.html">Unknown Handlers</a>, <a shape="rect" 
href="dispatcher.html">Dispatcher</a></li></ul></li><li><a shape="rect" 
href="configuration-files.html">Configuration Files</a><ul><li><a shape="rect" 
href="webxml.html">web.xml</a></li><li><a shape="rect" 
href="strutsxml.html">struts.xml</a></li><li><a shape="rect" 
href="strutsproperties.html">struts.properties</a></li><li><a shape="rect" 
href="struts-defaultxml.html">struts-default.xml</a></li><li><a shape="rect" 
href="velocityproperties.html">velocity.properties</a></li><li><a shape="rect" 
href="struts-defaultvm.html">struts-default.vm</a></li></ul></li><li><a 
shape="rect" href="application-servers.html">Application Servers</a></li><li><a 
shape="rect" href="performance-tuning.html">Performance 
Tuning</a></li></ul></li><li><img class="emoticon emoticon-light-on" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/lightbulb_on.png";
 d
 ata-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" 
href="security.html">Security</a></li></ul></td><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" 
href="testing-actions.html">Testing Actions</a><ul><li><a shape="rect" 
class="external-link" 
href="http://arsenalist.com/2007/06/18/unit-testing-struts-2-actions-spring-junit/";
 rel="nofollow">(arsenalist)</a></li><li><a shape="rect" class="external-link" 
href="http://fassisrosa.blogspot.com/2006/11/unit-testing-struts-20.html"; 
rel="nofollow">(rosa)</a></li></ul></li><li><a shape="rect" 
href="interceptors.html">Interceptors</a><ul><li><a shape="rect" 
href="writing-interceptors.html">Writing Interceptors</a></li><li><a 
shape="rect" 
href="parameters-interceptor.html#ParametersInterceptor-Excludingparameters">Excluding
 Parameters</a></li></ul></li><li>Actions<ul><li><a shape="rect" 
href="model-driven.html">Model Driven</a></li><li><a shape="rect" 
href="action-chaining.html">Action Chaining</a></li><li><a s
 hape="rect" 
href="actioneventlistener.html">ActionEventListener</a></li></ul></li><li>Results<ul><li><a
 shape="rect" href="result-types.html">Result Types</a></li><li><a shape="rect" 
href="dispatcherlistener.html">DispatcherListener</a></li><li><a shape="rect" 
href="preresultlistener.html">PreResultListener</a></li></ul></li><li><a 
shape="rect" href="validation.html">Validation</a></li><li><a shape="rect" 
href="localization.html">Localization</a><ul><li><a shape="rect" 
href="formatting-dates-and-numbers.html">Formatting Dates and 
Numbers</a></li></ul></li><li><a shape="rect" href="type-conversion.html">Type 
Conversion</a></li><li><a shape="rect" href="static-content.html">Static 
Content</a></li><li>Portlets<ul><li><a shape="rect" 
href="struts-2-portlet-tutorial.html">Tutorial</a></li><li><a shape="rect" 
href="portlet-plugin.html">Configuration/Documentation</a></li></ul></li><li><a 
shape="rect" href="logging.html">Logging</a></li><li><a shape="rect" 
href="faqs.html">FAQs</a><ul><li>
 <a shape="rect" href="struts-2-maven-archetypes.html">Struts 2 Maven 
Archetypes</a></li><li><a shape="rect" 
href="cookbook.html">Cookbook</a></li></ul></li><li><a shape="rect" 
class="external-link" 
href="http://struts.apache.org/2.x/struts2-core/apidocs/index.html";>Javadoc 
APIs</a></li></ul></td></tr></tbody></table></div><h2 
id="Guides-TagDevelopersGuide"><a shape="rect" 
href="tag-developers-guide.html">Tag Developers Guide</a></h2><p>The framework 
offers a flexible view layer that supports multiple view technologies, 
including JSP, FreeMaker, and Velocity.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" href="struts-tags.html">Struts 
Tags</a><ul><li><a shape="rect" href="generic-tags.html">Generic 
Tags</a></li><li><a shape="rect" href="ui-tags.html">UI Tags</a></li><li><a 
shape="rect" href="themes-and-templates.html">Themes and 
Templates</a></li><li><a shape="rect" href="tag-reference.htm
 l">Tag Reference</a></li><li><a shape="rect" href="ajax-tags.html">Ajax 
Tags</a><ul><li><a shape="rect" href="ajax-and-javascript-recipes.html">Ajax 
and JavaScript Recipes</a></li></ul></li></ul></li><li><a shape="rect" 
href="ognl.html">OGNL</a></li><li><a shape="rect" href="tag-syntax.html">Tag 
Syntax</a></li><li><a shape="rect" href="alt-syntax.html">Alt 
Syntax</a></li></ul></td><td colspan="1" rowspan="1" 
class="confluenceTd"><ul><li><a shape="rect" href="jsp.html">JSP</a><ul><li><a 
shape="rect" href="jsp-tags.html">specific tags</a></li></ul></li><li><a 
shape="rect" href="freemarker.html">FreeMarker</a><ul><li><a shape="rect" 
href="freemarker-tags.html">specific tags</a></li></ul></li><li><a shape="rect" 
href="velocity.html">Velocity</a><ul><li><a shape="rect" 
href="velocity-tags.html">specific 
tags</a></li></ul></li></ul></td></tr></tbody></table></div><h2 
id="Guides-PluginDevelopersGuide"><a shape="rect" 
href="plugin-developers-guide.html">Plugin Developers Guide</a></h2><p>
+</p><p>Apache Struts 2 provides a simple <a shape="rect" 
href="plugins.html">plugin architecture</a> so that developers can extend the 
framework just by adding a JAR to the application's classpath. Since plugins 
are contained in a JAR, they are easy to share with others. Several plugins are 
bundled with the framework, and others are available from third-party sources. 
</p>
 
 <ul><li><a shape="rect" href="plugins.html">Plugins</a></li><li><a 
shape="rect" href="extending-an-application-with-custom-plugins.html">Extending 
an Application with Custom Plugins</a></li></ul>
 
@@ -159,22 +144,10 @@ The framework offers a flexible view lay
 </td></tr></tbody></table></div>
 
 
-<p><img class="emoticon emoticon-tick" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png";
 data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and 
third-party plugins, visit the <a shape="rect" class="external-link" 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin Registry.</a>.</p>
-
-<h2 id="Guides-ArchitectsGuide"><a shape="rect" 
href="architects-guide.html">Architects Guide</a></h2>
-
-
-<ul><li><a shape="rect" href="big-picture.html">Big Picture</a>
+<p><img class="emoticon emoticon-tick" 
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png";
 data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and 
third-party plugins, visit the <a shape="rect" class="external-link" 
href="http://cwiki.apache.org/S2PLUGINS/home.html";>Plugin Registry.</a>.</p><h2 
id="Guides-ArchitectsGuide"><a shape="rect" 
href="architects-guide.html">Architects Guide</a></h2><p>
+</p><ul><li><a shape="rect" href="big-picture.html">Big Picture</a>
        <ul><li><a shape="rect" 
href="objectfactory.html">ObjectFactory</a></li><li><a shape="rect" 
href="actionmapper.html">ActionMapper</a></li><li><a shape="rect" 
href="action-proxy-actionproxy-factory.html">Action Proxy &amp; ActionProxy 
Factory</a></li><li><a shape="rect" 
href="configuration-provider-configuration.html">Configuration Provider &amp; 
Configuration</a></li></ul>
-       </li></ul>
-
-<h2 id="Guides-MigrationGuide"><a shape="rect" 
href="migration-guide.html">Migration Guide</a></h2>
-
-Getting here from there.<h3 id="Guides-VersionNotes2.3.x">Version Notes 
2.3.x</h3><ul><li><p><a shape="rect" href="version-notes-2318.html">Version 
Notes 2.3.18</a> <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)"> This version is not yet 
released!</p></li><li><a shape="rect" href="version-notes-23163.html">Version 
Notes 2.3.16.3</a></li><li><a shape="rect" 
href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a 
shape="rect" href="version-notes-2316.html">Version Notes 
2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version 
Notes 2.3.16</a></li><li><a shape="rect" 
href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a 
shape="rect" href="version-notes-23152.html">Version Notes 
2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version 
Notes
  2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version 
Notes 2.3.15</a></li><li><a shape="rect" 
href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a 
shape="rect" href="version-notes-23142.html">Version Notes 
2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version 
Notes 2.3.14.1</a></li><li><a shape="rect" 
href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 
2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 
2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 
2.3.1.2</a></li><li><a shape=
 "rect" href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a 
shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 
id="Guides-VersionNotes2.2.x">Version Notes 2.2.x</h3><ul><li><a shape="rect" 
href="version-notes-2231.html">Version Notes 2.2.3.1</a></li><li><a 
shape="rect" href="version-notes-223.html">Version Notes 2.2.3</a></li><li><a 
shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="Guides-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 
2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 
2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 
2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 
2.1.4</a></li><li><a
  shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a 
shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a 
shape="rect" href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a 
shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
id="Guides-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a shape="rect" 
href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a shape="rect" 
href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a shape="rect" 
href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a shape="rect" 
href="release-notes-20112.html">Release Notes 2.0.11.2</a></li><li><a 
shape="rect" href="release-notes-20111.html">Release Notes 
2.0.11.1</a></li><li><a shape="rect" href="release-notes-2011.html">Release 
Notes 2.0.11</a></li><li><a shape="rect" href="release-notes-2010.html">Release 
Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release 
 Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release 
Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release 
Notes 2.0.7</a></li><li><a shape="rect" href="release-notes-206.html">Release 
Notes 2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release 
Notes 2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release 
Notes 2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release 
Notes 2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release 
Notes 2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release 
Notes 2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release 
Notes 2.0.0</a></li></ul><h3 id="Guides-Struts1toStruts2">Struts 1 to Struts 
2</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
 colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 
Solutions</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Various issues (and hopefully their solutions!) 
encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-strategies.html">Migration Strategies</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies 
for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 id="Guides-Tutorials">Tutorials<
 /h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
class="external-link" href="http://www.infoq.com/news/migrating-struts2"; 
rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="Guides-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td c
 olspan="1" rowspan="1" class="confluenceTd"><p>Don Brown's summary of 
events</p></td></tr></tbody></table></div><h3 
id="Guides-Webwork2.2toStruts2">Webwork 2.2 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="key-changes-from-webwork-2.html">Key Changes From WebWork 
2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been 
removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="webwork-2-migration-strategies.html">WebWork 2 Migration 
Strategies</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 
applications to Struts 2.</p></td></tr></tbody></table></div>
-
-<h2 id="Guides-ContributorsGuide"><a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2>
-
-<p>
+       </li></ul><h2 id="Guides-MigrationGuide"><a shape="rect" 
href="migration-guide.html">Migration Guide</a></h2><p>Getting here from 
there.</p><h3 id="Guides-VersionNotes2.3.x">Version Notes 
2.3.x</h3><ul><li><p><a shape="rect" href="version-notes-2318.html">Version 
Notes 2.3.18</a></p></li><li><p><a shape="rect" 
href="version-notes-23163.html">Version Notes 2.3.16.3</a></p></li><li><a 
shape="rect" href="version-notes-23162.html">Version Notes 
2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version 
Notes 2.3.16.1</a></li><li><a shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" 
href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a 
shape="rect" href="version-notes-23152.html">Version Notes 
2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version 
Notes 2.3.15.1</a></li><li><a shape="rect" 
href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" 
href="version-notes-231
 43.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" 
href="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a 
shape="rect" href="version-notes-23141.html">Version Notes 
2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version 
Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 
2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 
2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 
2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version 
Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version 
Notes 2.3.1</a>
 </li></ul><h3 id="Guides-VersionNotes2.2.x">Version Notes 2.2.x</h3><ul><li><a 
shape="rect" href="version-notes-2231.html">Version Notes 
2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 
2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="Guides-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 
2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 
2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 
2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version Notes 
2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version Notes 
2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version Notes 
2.1.2
 </a></li><li><a shape="rect" href="version-notes-211.html">Version Notes 
2.1.1</a></li><li><a shape="rect" href="version-notes-210.html">Version Notes 
2.1.0</a></li></ul><h3 id="Guides-ReleaseNotes2.0.x">Release Notes 
2.0.x</h3><ul><li><a shape="rect" href="release-notes-2014.html">Release Notes 
2.0.14</a></li><li><a shape="rect" href="release-notes-2013.html">Release Notes 
2.0.13</a></li><li><a shape="rect" href="release-notes-2012.html">Release Notes 
2.0.12</a></li><li><a shape="rect" href="release-notes-20112.html">Release 
Notes 2.0.11.2</a></li><li><a shape="rect" 
href="release-notes-20111.html">Release Notes 2.0.11.1</a></li><li><a 
shape="rect" href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a 
shape="rect" href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a 
shape="rect" href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a 
shape="rect" href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a 
shape="rect" href="release-notes-207
 .html">Release Notes 2.0.7</a></li><li><a shape="rect" 
href="release-notes-206.html">Release Notes 2.0.6</a></li><li><a shape="rect" 
href="release-notes-205.html">Release Notes 2.0.5</a></li><li><a shape="rect" 
href="release-notes-204.html">Release Notes 2.0.4</a></li><li><a shape="rect" 
href="release-notes-203.html">Release Notes 2.0.3</a></li><li><a shape="rect" 
href="release-notes-202.html">Release Notes 2.0.2</a></li><li><a shape="rect" 
href="release-notes-201.html">Release Notes 2.0.1</a></li><li><a shape="rect" 
href="release-notes-200.html">Release Notes 2.0.0</a></li></ul><h3 
id="Guides-Struts1toStruts2">Struts 1 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
alike? How are they different?</p></td></tr><tr><th colspan="1"
  rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their 
solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-strategies.html">Migration Strategies</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies 
for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 
id="Guides-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" cla
 ss="external-link" href="http://www.infoq.com/news/migrating-struts2"; 
rel="nofollow">Migrating Applications to Struts 2 </a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="Guides-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Don Brown's summary of 
events</p></td></tr></tbody></table></div><h3 id="Guides-Webwork2.2toSt
 ruts2">Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" 
href="key-changes-from-webwork-2.html">Key Changes From WebWork 
2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been 
removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="webwork-2-migration-strategies.html">WebWork 2 Migration 
Strategies</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 
applications to Struts 2.</p></td></tr></tbody></table></div><h2 
id="Guides-ContributorsGuide"><a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2><p>
 
 </p><h3 id="Guides-Source">Source</h3>
 
@@ -195,17 +168,12 @@ Getting here from there.<h3 id="Guides-V
 
 <h3 id="Guides-LicensingandCopyright">Licensing and Copyright</h3>
 
-<ul><li><a shape="rect" class="external-link" 
href="http://people.apache.org/~cliffs/3party.html";>Third Party Licensing 
Policy RFC</a></li><li><a shape="rect" class="external-link" 
href="http://www.apache.org/legal/src-headers.html";>ASF Source Header and 
Copyright Notice Policy</a></li><li><a shape="rect" class="external-link" 
href="http://tinyurl.com/mw7t6"; rel="nofollow">Author Tags</a></li></ul>
-<h2 id="Guides-Errata?">Errata?</h2>
-
-    <div class="aui-message success shadowed information-macro">
+<ul><li><a shape="rect" class="external-link" 
href="http://people.apache.org/~cliffs/3party.html";>Third Party Licensing 
Policy RFC</a></li><li><a shape="rect" class="external-link" 
href="http://www.apache.org/legal/src-headers.html";>ASF Source Header and 
Copyright Notice Policy</a></li><li><a shape="rect" class="external-link" 
href="http://tinyurl.com/mw7t6"; rel="nofollow">Author Tags</a></li></ul><h2 
id="Guides-Errata?">Errata?</h2>    <div class="aui-message success shadowed 
information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
                             <p>To suggest a change or a correction to any part 
of the documentation, log in and leave a comment on the appropriate page. We 
are always looking for <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.x/docs/contributors-guide.html";>help with the 
documentation!</a></p>
                     </div>
     </div>
-
-
 <h2 id="Guides-Next:">Next: <a shape="rect" 
href="faqs.html">FAQs</a></h2></div>
         </div>
 

Modified: 
websites/production/struts/content/release/2.3.x/docs/interceptors.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/interceptors.html 
(original)
+++ websites/production/struts/content/release/2.3.x/docs/interceptors.html Fri 
Nov 14 07:43:54 2014
@@ -145,11 +145,11 @@ under the License. 
                     </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 invocation 
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.rbtoc1405758310004 {padding: 0px;}
-div.rbtoc1405758310004 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1405758310004 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411292100725 {padding: 0px;}
+div.rbtoc1411292100725 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411292100725 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1405758310004">
+/*]]>*/</style></p><div class="toc-macro rbtoc1411292100725">
 <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>

Modified: 
websites/production/struts/content/release/2.3.x/docs/migration-guide.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/migration-guide.html 
(original)
+++ websites/production/struts/content/release/2.3.x/docs/migration-guide.html 
Fri Nov 14 07:43:54 2014
@@ -125,7 +125,7 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Getting here from there.</p><h3 
id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><p><a 
shape="rect" href="version-notes-2318.html">Version Notes 2.3.18</a> <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)"> This version is not yet 
released!</p></li><li><a shape="rect" href="version-notes-23163.html">Version 
Notes 2.3.16.3</a></li><li><a shape="rect" 
href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a 
shape="rect" href="version-notes-2316.html">Version Notes 
2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version 
Notes 2.3.16</a></li><li><a shape="rect" 
href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a 
shape="rect" href="version-notes-23152.html">Version Notes 
2.3.15.2</a></li><li><a sha
 pe="rect" href="version-notes-23151.html">Version Notes 
2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version 
Notes 2.3.15</a></li><li><a shape="rect" 
href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a 
shape="rect" href="version-notes-23142.html">Version Notes 
2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version 
Notes 2.3.14.1</a></li><li><a shape="rect" 
href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 
2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 
2.3.3</a></li><li><a shape="rect" href="version-notes
 -2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" 
href="version-notes-2311.html">Version Notes 2.3.1.1</a></li><li><a 
shape="rect" href="version-notes-231.html">Version Notes 2.3.1</a></li></ul><h3 
id="MigrationGuide-VersionNotes2.2.x">Version Notes 2.2.x</h3><ul><li><a 
shape="rect" href="version-notes-2231.html">Version Notes 
2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version Notes 
2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version Notes 
2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version Notes 
2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version Notes 
2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version Notes 
2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version Notes 
2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version Notes 
2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version Notes 
2.1.5</a></li><li><a shape=
 "rect" href="version-notes-214.html">Version Notes 2.1.4</a></li><li><a 
shape="rect" href="version-notes-213.html">Version Notes 2.1.3</a></li><li><a 
shape="rect" href="version-notes-212.html">Version Notes 2.1.2</a></li><li><a 
shape="rect" href="version-notes-211.html">Version Notes 2.1.1</a></li><li><a 
shape="rect" href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a 
shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a 
shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a 
shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a 
shape="rect" href="release-notes-20112.html">Release Notes 
2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release 
Notes 2.0.11.1</a></li><li><a shape="rect" 
href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" 
href="release-notes-2010.html">Release 
 Notes 2.0.10</a></li><li><a shape="rect" href="release-notes-209.html">Release 
Notes 2.0.9</a></li><li><a shape="rect" href="release-notes-208.html">Release 
Notes 2.0.8</a></li><li><a shape="rect" href="release-notes-207.html">Release 
Notes 2.0.7</a></li><li><a shape="rect" href="release-notes-206.html">Release 
Notes 2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release 
Notes 2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release 
Notes 2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release 
Notes 2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release 
Notes 2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release 
Notes 2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release 
Notes 2.0.0</a></li></ul><h3 id="MigrationGuide-Struts1toStruts2">Struts 1 to 
Struts 2</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shap
 e="rect" href="comparing-struts-1-and-2.html">Comparing Struts 1 and 
2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>How are 
Struts 1 and Struts 2 alike? How are they different?</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="struts-1-solutions.html">Struts 1 Solutions</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Various issues (and hopefully their 
solutions!) encountered during migrations to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-strategies.html">Migration Strategies</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies 
for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Development tools to help aid the mig
 ration process.</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://www.infoq.com/news/migrating-struts2"; rel="nofollow">Migrating 
Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" href="http://www.oreillynet.com/
 onjava/blog/2006/10/my_history_of_struts_2.html" rel="nofollow">A History of 
Struts 2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>Don 
Brown's summary of events</p></td></tr></tbody></table></div><h3 
id="MigrationGuide-Webwork2.2toStruts2">Webwork 2.2 to Struts 2</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="key-changes-from-webwork-2.html">Key Changes From WebWork 
2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has been 
removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="webwork-2-migration-strategies.html">WebWork 2 Migration 
Strategies</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 
applications to Struts 2.</p></td></tr></tbody></table></div><h2 
id="MigrationGuide-FAQs">FAQs</h2><ul><li><
 a shape="rect" 
href="where-do-we-get-the-latest-version-the-framework.html">Where do we get 
the latest version the framework</a>?</li><li><a shape="rect" 
href="what-are-some-of-the-frameworks-best-features.html">What are some of the 
framework's best features</a>?</li><li><a shape="rect" 
href="what-is-the-actioncontext.html">What is the 
ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a shape="rect" 
href="contributors-guide.html">Contributors Guide</a></h2></div>
+            <div id="ConfluenceContent"><p>Getting here from there.</p><h3 
id="MigrationGuide-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><p><a 
shape="rect" href="version-notes-2318.html">Version Notes 
2.3.18</a></p></li><li><p><a shape="rect" 
href="version-notes-23163.html">Version Notes 2.3.16.3</a></p></li><li><a 
shape="rect" href="version-notes-23162.html">Version Notes 
2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version 
Notes 2.3.16.1</a></li><li><a shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" 
href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a 
shape="rect" href="version-notes-23152.html">Version Notes 
2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version 
Notes 2.3.15.1</a></li><li><a shape="rect" 
href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" 
href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a 
shape="rect" hr
 ef="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a 
shape="rect" href="version-notes-23141.html">Version Notes 
2.3.14.1</a></li><li><a shape="rect" href="version-notes-2314.html">Version 
Notes 2.3.14</a></li><li><a shape="rect" 
href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a 
shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a 
shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a 
shape="rect" href="version-notes-2341.html">Version Notes 
2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 
2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 
2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 
2.3.1.2</a></li><li><a shape="rect" href="version-notes-2311.html">Version 
Notes 2.3.1.1</a></li><li><a shape="rect" href="version-notes-231.html">Version 
Notes 2.3.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.2.x">Version No
 tes 2.2.x</h3><ul><li><a shape="rect" href="version-notes-2231.html">Version 
Notes 2.2.3.1</a></li><li><a shape="rect" href="version-notes-223.html">Version 
Notes 2.2.3</a></li><li><a shape="rect" href="version-notes-2211.html">Version 
Notes 2.2.1.1</a></li><li><a shape="rect" href="version-notes-221.html">Version 
Notes 2.2.1</a></li></ul><h3 id="MigrationGuide-VersionNotes2.1.x">Version 
Notes 2.1.x</h3><ul><li><a shape="rect" href="version-notes-2181.html">Version 
Notes 2.1.8.1</a></li><li><a shape="rect" href="version-notes-218.html">Version 
Notes 2.1.8</a></li><li><a shape="rect" href="version-notes-216.html">Version 
Notes 2.1.6</a></li><li><a shape="rect" href="version-notes-215.html">Version 
Notes 2.1.5</a></li><li><a shape="rect" href="version-notes-214.html">Version 
Notes 2.1.4</a></li><li><a shape="rect" href="version-notes-213.html">Version 
Notes 2.1.3</a></li><li><a shape="rect" href="version-notes-212.html">Version 
Notes 2.1.2</a></li><li><a shape="rect" href="version-not
 es-211.html">Version Notes 2.1.1</a></li><li><a shape="rect" 
href="version-notes-210.html">Version Notes 2.1.0</a></li></ul><h3 
id="MigrationGuide-ReleaseNotes2.0.x">Release Notes 2.0.x</h3><ul><li><a 
shape="rect" href="release-notes-2014.html">Release Notes 2.0.14</a></li><li><a 
shape="rect" href="release-notes-2013.html">Release Notes 2.0.13</a></li><li><a 
shape="rect" href="release-notes-2012.html">Release Notes 2.0.12</a></li><li><a 
shape="rect" href="release-notes-20112.html">Release Notes 
2.0.11.2</a></li><li><a shape="rect" href="release-notes-20111.html">Release 
Notes 2.0.11.1</a></li><li><a shape="rect" 
href="release-notes-2011.html">Release Notes 2.0.11</a></li><li><a shape="rect" 
href="release-notes-2010.html">Release Notes 2.0.10</a></li><li><a shape="rect" 
href="release-notes-209.html">Release Notes 2.0.9</a></li><li><a shape="rect" 
href="release-notes-208.html">Release Notes 2.0.8</a></li><li><a shape="rect" 
href="release-notes-207.html">Release Notes 2.0.7</a></li><li
 ><a shape="rect" href="release-notes-206.html">Release Notes 
 >2.0.6</a></li><li><a shape="rect" href="release-notes-205.html">Release Notes 
 >2.0.5</a></li><li><a shape="rect" href="release-notes-204.html">Release Notes 
 >2.0.4</a></li><li><a shape="rect" href="release-notes-203.html">Release Notes 
 >2.0.3</a></li><li><a shape="rect" href="release-notes-202.html">Release Notes 
 >2.0.2</a></li><li><a shape="rect" href="release-notes-201.html">Release Notes 
 >2.0.1</a></li><li><a shape="rect" href="release-notes-200.html">Release Notes 
 >2.0.0</a></li></ul><h3 id="MigrationGuide-Struts1toStruts2">Struts 1 to 
 >Struts 2</h3><div class="table-wrap"><table 
 >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
 >class="confluenceTh"><p><a shape="rect" 
 >href="comparing-struts-1-and-2.html">Comparing Struts 1 and 2</a></p></th><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>How are Struts 1 and Struts 2 
 >alike? How are they different?</p></td></tr><tr><th colspan="1" rowspan="1" 
 >class="confluence
 Th"><p><a shape="rect" href="struts-1-solutions.html">Struts 1 
Solutions</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Various issues (and hopefully their solutions!) 
encountered during migrations to Struts 2.</p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-strategies.html">Migration Strategies</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Steps and overall strategies 
for migrating Struts 1 applications to Struts 2.</p></td></tr><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
href="migration-tools.html">Migration Tools</a></p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Development tools to help aid the migration 
process.</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Tutorials">Tutorials</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" hre
 f="http://www.infoq.com/news/migrating-struts2"; rel="nofollow">Migrating 
Applications to Struts 2 </a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>A three-part series by Ian Roughley (Sep 
2006)</p></td></tr></tbody></table></div><h4 
id="MigrationGuide-Roadmap">Roadmap</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p><a shape="rect" class="external-link" 
href="http://struts.apache.org/roadmap.html#new";>Roadmap FAQ</a></p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>What's in store for Struts 
2?</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><a 
shape="rect" class="external-link" 
href="http://www.oreillynet.com/onjava/blog/2006/10/my_history_of_struts_2.html";
 rel="nofollow">A History of Struts 2</a></p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Don Brown's summary of 
events</p></td></tr></tbody></table></div><h3 
id="MigrationGuide-Webwork2.2toStruts2"
 >Webwork 2.2 to Struts 2</h3><div class="table-wrap"><table 
 >class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
 >class="confluenceTh"><p><a shape="rect" 
 >href="key-changes-from-webwork-2.html">Key Changes From WebWork 
 >2</a></p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>What has 
 >been removed or changed from WebWork 2.2 to Struts 2</p></td></tr><tr><th 
 >colspan="1" rowspan="1" class="confluenceTh"><p><a shape="rect" 
 >href="webwork-2-migration-strategies.html">WebWork 2 Migration 
 >Strategies</a></p></th><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Steps and overall strategies for migrating WebWork 2 
 >applications to Struts 2.</p></td></tr></tbody></table></div><h2 
 >id="MigrationGuide-FAQs">FAQs</h2><ul><li><a shape="rect" 
 >href="where-do-we-get-the-latest-version-the-framework.html">Where do we get 
 >the latest version the framework</a>?</li><li><a shape="rect" 
 >href="what-are-some-of-the-frameworks-best-features.html">What are some of 
 >the framework's best features
 </a>?</li><li><a shape="rect" href="what-is-the-actioncontext.html">What is 
the ActionContext?</a></li></ul><h2 id="MigrationGuide-Next:">Next: <a 
shape="rect" href="contributors-guide.html">Contributors Guide</a></h2></div>
         </div>
 
                     <div class="tabletitle">

Modified: 
websites/production/struts/content/release/2.3.x/docs/model-driven.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/model-driven.html 
(original)
+++ websites/production/struts/content/release/2.3.x/docs/model-driven.html Fri 
Nov 14 07:43:54 2014
@@ -138,18 +138,8 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>Struts 2 does not have "forms" like 
Struts 1 did. In Struts 2 request parameters are bound directly to fields in 
the actions class, and this class is placed on top of the stack when the action 
is executed. </p>
-
-<p>If an action  class implements the interface 
<code>com.opensymphony.xwork2.ModelDriven</code> then it needs to return an 
object from the <code>getModel()</code> method. Struts will then populate the 
fields of this object with the request parameters, and this object will be 
placed on top of the stack once the action is executed. Validation will also be 
performed on this model object, instead of the action. </p>
-
-<h2 id="ModelDriven-Interceptor">Interceptor</h2>
-<p>To use <code>ModelDriven</code> actions, make sure that the <a shape="rect" 
href="model-driven-interceptor.html">Model Driven Interceptor</a> is applied to 
your action. This interceptor is part of the default interceptor stack 
<code>defaultStack</code> so it is applied to all actions by default. </p>
-
-<h2 id="ModelDriven-Example">Example</h2>
-<p>Action class:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-public class ModelDrivenAction implements ModelDriven { 
+            <div id="ConfluenceContent"><p>Struts 2 does not have "forms" like 
Struts 1 did. In Struts 2 request parameters are bound directly to fields in 
the actions class, and this class is placed on top of the stack when the action 
is executed.</p><p>If an action class implements the interface 
<code>com.opensymphony.xwork2.ModelDriven</code> then it needs to return an 
object from the <code>getModel()</code> method. Struts will then populate the 
fields of this object with the request parameters, and this object will be 
placed on top of the stack once the action is executed. Validation will also be 
performed on this model object, instead of the action. Please read 
about&#160;<a shape="rect" 
href="visitorfieldvalidator-annotation.html">VisitorFieldValidator 
Annotation</a> which can help you validate model's fields.</p><h2 
id="ModelDriven-Interceptor">Interceptor</h2><p>To use <code>ModelDriven</code> 
actions, make sure that the <a shape="rect" 
href="model-driven-interceptor.html">M
 odel Driven Interceptor</a> is applied to your action. This interceptor is 
part of the default interceptor stack <code>defaultStack</code> so it is 
applied to all actions by default.</p><h2 
id="ModelDriven-Example">Example</h2><p>Action class:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[public class ModelDrivenAction implements 
ModelDriven { 
     public String execute() throws Exception {
         return SUCCESS;
     }
@@ -159,11 +149,8 @@ public class ModelDrivenAction implement
     }
 }
 ]]></script>
-</div></div>
-<p>Gangster class (model):</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-public class Gangster implements Serializable {
+</div></div><p>Gangster class (model):</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[public class Gangster implements Serializable 
{
     private String name;
     private int age;
     private String description;
@@ -195,11 +182,8 @@ public class Gangster implements Seriali
     }
 }
 ]]></script>
-</div></div>
-<p>JSP for creating a Gangster:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-&lt;s:form action=&quot;modelDrivenResult&quot; method=&quot;POST&quot; 
namespace=&quot;/modelDriven&quot;&gt;   
+</div></div><p>JSP for creating a Gangster:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: html; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;s:form 
action=&quot;modelDrivenResult&quot; method=&quot;POST&quot; 
namespace=&quot;/modelDriven&quot;&gt;   
     &lt;s:textfield label=&quot;Gangster Name&quot; name=&quot;name&quot; /&gt;
     &lt;s:textfield label=&quot;Gangster Age&quot;  name=&quot;age&quot; /&gt;
     &lt;s:checkbox  label=&quot;Gangster Busted Before&quot; 
name=&quot;bustedBefore&quot; /&gt;

Modified: websites/production/struts/content/release/2.3.x/docs/rest-plugin.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/rest-plugin.html 
(original)
+++ websites/production/struts/content/release/2.3.x/docs/rest-plugin.html Fri 
Nov 14 07:43:54 2014
@@ -145,11 +145,11 @@ under the License. 
                     </div>
     </div>
 <p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1405758685177 {padding: 0px;}
-div.rbtoc1405758685177 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1405758685177 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415950670950 {padding: 0px;}
+div.rbtoc1415950670950 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415950670950 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1405758685177">
+/*]]>*/</style></p><div class="toc-macro rbtoc1415950670950">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" href="#RESTPlugin-Overview">Overview</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a 
shape="rect" href="#RESTPlugin-Features">Features</a></li><li><span 
class="TOCOutline">1.2</span> <a shape="rect" 
href="#RESTPlugin-MappingRESTURLstoStruts2Actions">Mapping REST URLs to Struts 
2 Actions</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">1.2.1</span> <a 
shape="rect" href="#RESTPlugin-RESTfulURLMappingLogic">RESTful URL Mapping 
Logic</a></li></ul>
@@ -161,7 +161,7 @@ div.rbtoc1405758685177 li {margin-left: 
 </li></ul>
 </li><li><span class="TOCOutline">2.2</span> <a shape="rect" 
href="#RESTPlugin-WriteYourControllerActions">Write Your Controller 
Actions</a></li></ul>
 </li><li><span class="TOCOutline">3</span> <a shape="rect" 
href="#RESTPlugin-AdvancedTopics">Advanced Topics</a>
-<ul class="toc-indentation"><li><span class="TOCOutline">3.1</span> <a 
shape="rect" href="#RESTPlugin-CustomContentTypeHandlers">Custom 
ContentTypeHandlers</a></li><li><span class="TOCOutline">3.2</span> <a 
shape="rect" href="#RESTPlugin-Settings">Settings</a></li></ul>
+<ul class="toc-indentation"><li><span class="TOCOutline">3.1</span> <a 
shape="rect" href="#RESTPlugin-CustomContentTypeHandlers">Custom 
ContentTypeHandlers</a></li><li><span class="TOCOutline">3.2</span> <a 
shape="rect" href="#RESTPlugin-UseJacksonframeworkasJSONContentTypeHandler">Use 
Jackson framework as JSON ContentTypeHandler</a></li><li><span 
class="TOCOutline">3.3</span> <a shape="rect" 
href="#RESTPlugin-Settings">Settings</a></li></ul>
 </li><li><span class="TOCOutline">4</span> <a shape="rect" 
href="#RESTPlugin-Resources">Resources</a></li><li><span 
class="TOCOutline">5</span> <a shape="rect" 
href="#RESTPlugin-VersionHistory">Version History</a></li></ul>
 </div><h2 id="RESTPlugin-Overview">Overview</h2><p>The REST Pluginprovides 
high level support for the implementation of RESTful resource based web 
applicationsThe REST plugin can cooperate with the <a shape="rect" 
href="convention-plugin.html">Convention Plugin</a> to support a zero 
configuration approach to declaring your actions and results, but you can 
always use the REST plugin with XML style configuration if you like.</p><p>If 
you prefer to see a working code example, instead of reading through an 
explanation, you can download the <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.x/index.html";>struts2 sample apps</a> and 
check out the <code>struts2-rest-showcase</code> application, a complete WAR 
file, that demonstrates a simple REST web program.</p><h3 
id="RESTPlugin-Features">Features</h3><ul><li>Ruby on Rails REST-style 
URLs</li><li>Zero XML config when used with Convention Plugin</li><li>Built-in 
serialization and deserialization support for XML and JSO
 N</li><li>Automatic error handling</li><li>Type-safe configuration of the HTTP 
response</li><li>Automatic conditional GET support</li></ul><h3 
id="RESTPlugin-MappingRESTURLstoStruts2Actions">Mapping REST URLs to Struts 2 
Actions</h3><p>The main functionality of the REST plugin lies in the 
interpretation of incoming request URL's according the RESTful rules. In the 
Struts 2 framework, this 'mapping' of request URL's to Actions is handled by in 
implementation of the <a shape="rect" class="external-link" 
href="http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/ActionMapper.html";><code>ActionMapper</code></a>
 interface. Out of the box, Struts 2 uses the <a shape="rect" 
class="external-link" 
href="http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.html";><code>DefaultActionMapper</code></a>
 to map URL's to Actions via the logic you are probably already familiar 
with.</p>    <div class="aui-message 
 warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
@@ -268,7 +268,25 @@ public class OrdersController implements
 </div></div><p>Then, tell the REST Plugin to override the handler for the 
desired extension with yours. In <code>struts.properties</code>, it would look 
like this:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[struts.rest.handlerOverride.xml=myXml
 ]]></script>
-</div></div><h3 id="RESTPlugin-Settings">Settings</h3><p>The following 
settings can be customized. See the <a shape="rect" class="external-link" 
href="http://cwiki.apache.org/confluence/display/WW/Configuration+Files";>developer
 guide</a>.<br clear="none"> For more configuration options see the <a 
shape="rect" href="convention-plugin.html">Convention Plugin 
Documentation</a></p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Setting</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Possible Values</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>struts.rest.handlerOverride.EXTENSION</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>The alias for the 
<code>ContentTypeHandler</code> implementation that handles the EXTENSION val
 ue</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>N/A</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Any declared alias for a 
<code>ContentTypeHandler</code> implementation</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>struts.rest.defaultExtension</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The default extension to use 
when none is explicitly specified in the request</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>xhtml</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Any extension</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>struts.rest.validationFailureStatusCode</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP status code to return 
on validation failure</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>400</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Any HTTP status code as 
 an integer</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>struts.rest.namespace</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter to specify 
namespace for REST services</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>/</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>eg. /rest</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>struts.rest.content.restrictToGET</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter, if set to 
true blocks returning content from any other methods than GET, if set to false, 
the content can be returned for any kind of method</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>eg. put struts.rest.content.restrictToGET = 
false in struts.properties</p></td></tr></tbody></table></div><h2 
id="RESTPlugin-Resources">Resource
 s</h2><ul><li><a shape="rect" class="external-link" 
href="http://www.b-simple.de/documents"; 
rel="nofollow">http://www.b-simple.de/documents</a> - Short RESTful Rails 
tutorial (PDF, multiple languages)</li><li><a shape="rect" 
class="external-link" 
href="http://www.amazon.com/RESTful-Web-Services-Leonard-Richardson/dp/0596529260";
 rel="nofollow">RESTful Web Services</a> - Highly recommend book from 
O'Reilly</li><li><a shape="rect" class="external-link" 
href="http://raibledesigns.com/rd/entry/go_light_with_apache_struts"; 
rel="nofollow">Go Light with Apache Struts 2 and REST</a> - Presentation by Don 
Brown at ApacheCon US 2008</li></ul><h2 id="RESTPlugin-VersionHistory">Version 
History</h2><p>From Struts 2.1.1+</p></div>
+</div></div><h3 
id="RESTPlugin-UseJacksonframeworkasJSONContentTypeHandler">Use Jackson 
framework as JSON ContentTypeHandler</h3><p>The default JSON Content Handler is 
build on top of the <a shape="rect" class="external-link" 
href="http://json-lib.sourceforge.net/"; rel="nofollow">JSON-lib</a>. If you 
prefer to use the <a shape="rect" class="external-link" 
href="http://jackson.codehaus.org/"; rel="nofollow">Jackson framework</a> for 
JSON serialisation, you can configure the JacksonLibHandler as Content Handler 
for your json requests.&#160;</p><p>First you need to add the jackson 
dependency to your web application by downloading the jar file and put it under 
WEB-INF/lib or by adding following xml snippet to your dependencies section in 
the pom.xml when you are using maven as build system.</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+    &lt;groupId&gt;org.codehaus.jackson&lt;/groupId&gt;
+    &lt;artifactId&gt;jackson-jaxrs&lt;/artifactId&gt;
+    &lt;version&gt;1.9.13&lt;/version&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div><p>Now you can overwrite the Content Handler with the Jackson 
Content Handler in the struts.xml:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;bean 
type=&quot;org.apache.struts2.rest.handler.ContentTypeHandler&quot; 
name=&quot;jackson&quot; 
class=&quot;org.apache.struts2.rest.handler.JacksonLibHandler&quot;/&gt;
+&lt;constant name=&quot;struts.rest.handlerOverride.json&quot; 
value=&quot;jackson&quot;/&gt;
+
+&lt;!-- Set to false if the json content can be returned for any kind of http 
method --&gt;
+&lt;constant name=&quot;struts.rest.content.restrictToGET&quot; 
value=&quot;false&quot;/&gt; 
+
+&lt;!-- Set encoding to UTF-8, default is ISO-8859-1 --&gt;
+&lt;constant name=&quot;struts.i18n.encoding&quot; 
value=&quot;UTF-8&quot;/&gt; 
+
+]]></script>
+</div></div><p>&#160;</p><h3 id="RESTPlugin-Settings">Settings</h3><p>The 
following settings can be customized. See the <a shape="rect" 
class="external-link" 
href="http://cwiki.apache.org/confluence/display/WW/Configuration+Files";>developer
 guide</a>.<br clear="none"> For more configuration options see the <a 
shape="rect" href="convention-plugin.html">Convention Plugin 
Documentation</a></p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Setting</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Possible Values</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>struts.rest.handlerOverride.EXTENSION</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>The alias for the 
<code>ContentTypeHandler</code> implementation that handles the 
 EXTENSION value</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>N/A</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Any declared alias for a 
<code>ContentTypeHandler</code> implementation</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>struts.rest.defaultExtension</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The default extension to use 
when none is explicitly specified in the request</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>xhtml</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Any extension</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>struts.rest.validationFailureStatusCode</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>The HTTP status code to return 
on validation failure</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>400</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Any HTTP st
 atus code as an integer</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>struts.rest.namespace</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter to specify 
namespace for REST services</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>/</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>eg. /rest</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>struts.rest.content.restrictToGET</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Optional parameter, if set to 
true blocks returning content from any other methods than GET, if set to false, 
the content can be returned for any kind of method</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>eg. put struts.rest.content.restrictToGET = 
false in struts.properties</p></td></tr></tbody></table></div><h2 
id="RESTPlugin-Resour
 ces">Resources</h2><ul><li><a shape="rect" class="external-link" 
href="http://www.b-simple.de/documents"; 
rel="nofollow">http://www.b-simple.de/documents</a> - Short RESTful Rails 
tutorial (PDF, multiple languages)</li><li><a shape="rect" 
class="external-link" 
href="http://www.amazon.com/RESTful-Web-Services-Leonard-Richardson/dp/0596529260";
 rel="nofollow">RESTful Web Services</a> - Highly recommend book from 
O'Reilly</li><li><a shape="rect" class="external-link" 
href="http://raibledesigns.com/rd/entry/go_light_with_apache_struts"; 
rel="nofollow">Go Light with Apache Struts 2 and REST</a> - Presentation by Don 
Brown at ApacheCon US 2008</li></ul><h2 id="RESTPlugin-VersionHistory">Version 
History</h2><p>From Struts 2.1.1+</p></div>
         </div>
 
         

Modified: websites/production/struts/content/release/2.3.x/docs/security.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/security.html 
(original)
+++ websites/production/struts/content/release/2.3.x/docs/security.html Fri Nov 
14 07:43:54 2014
@@ -138,7 +138,18 @@ under the License. 
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h3 
id="Security-Securitytips">Security tips</h3><p>The Apache Struts 2 doesn't 
provide any security mechanism - it is just a pure web framework. Below are few 
tips you should consider during application development with the Apache Struts 
2.</p><h4 id="Security-RestrictaccesstotheConfigBrowser">Restrict access to the 
Config Browser</h4><p><a shape="rect" href="config-browser-plugin.html">Config 
Browser Plugin</a>&#160;exposes internal configuration and should be used only 
during development phase. If you must use it on production site, we strictly 
recommend restricting access to it - you can use &#160;Basic Authentication or 
any other security mechanism (e.g. <a shape="rect" class="external-link" 
href="http://shiro.apache.org/";>Apache Shiro</a>)</p><h4 
id="Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix 
different access levels in the same namespace</h4><p>Very often access to 
different resources is controlled based on URL p
 atterns, see snippet below. Because of that you cannot mix actions with 
different security levels in the same namespace. Always group actions in one 
namespace by security level.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+            <div id="ConfluenceContent"><h3 
id="Security-/*&lt;![CDATA[*/div.rbtoc1415950673266{padding:0px;}div.rbtoc1415950673266ul{list-style:disc;margin-left:0px;}div.rbtoc1415950673266li{margin-left:0px;padding-left:0px;}/*]]&gt;*/SecuritytipsRestrictaccesstotheConfigBrowserDon'tmixdifferentaccesslevels"><style
 type="text/css">/*<![CDATA[*/
+div.rbtoc1415950673266 {padding: 0px;}
+div.rbtoc1415950673266 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415950673266 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></h3><div class="toc-macro rbtoc1415950673266">
+<ul class="toc-indentation"><li><a shape="rect" 
href="#Security-Securitytips">Security tips</a>
+<ul class="toc-indentation"><li><a shape="rect" 
href="#Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config 
Browser</a></li><li><a shape="rect" 
href="#Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix 
different access levels in the same namespace</a></li></ul>
+</li><li><a shape="rect" href="#Security-Internalsecuritymechanism">Internal 
security mechanism</a>
+<ul class="toc-indentation"><li><a shape="rect" 
href="#Security-OGNLisusedtocallaction'smethods">OGNL is used to call action's 
methods</a></li></ul>
+</li></ul>
+</div><h3 id="Security-Securitytips">Security tips</h3><p>The Apache Struts 2 
doesn't provide any security mechanism - it is just a pure web framework. Below 
are few tips you should consider during application development with the Apache 
Struts 2.</p><h4 id="Security-RestrictaccesstotheConfigBrowser">Restrict access 
to the Config Browser</h4><p><a shape="rect" 
href="config-browser-plugin.html">Config Browser Plugin</a>&#160;exposes 
internal configuration and should be used only during development phase. If you 
must use it on production site, we strictly recommend restricting access to it 
- you can use &#160;Basic Authentication or any other security mechanism (e.g. 
<a shape="rect" class="external-link" href="http://shiro.apache.org/";>Apache 
Shiro</a>)</p><h4 
id="Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix 
different access levels in the same namespace</h4><p>Very often access to 
different resources is controlled based on URL patterns, see snippet below. 
Becaus
 e of that you cannot mix actions with different security levels in the same 
namespace. Always group actions in one namespace by security level.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;security-constraint&gt;
         &lt;web-resource-collection&gt;
             &lt;web-resource-name&gt;admin&lt;/web-resource-name&gt;
@@ -149,7 +160,52 @@ under the License. 
         &lt;/auth-constraint&gt;
     &lt;/security-constraint&gt;
 ]]></script>
-</div></div></div>
+</div></div><h3 id="Security-Internalsecuritymechanism">Internal security 
mechanism</h3><p>The Apache Struts 2 contains internal security manager which 
blocks access to particular classes and Java packages - it's a OGNL-wide 
mechanism which means it affects any aspect of the framework ie. incoming 
parameters, expressions used in JSPs, etc.</p><p>The defaults are as 
follow:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[    &lt;constant 
name=&quot;struts.excludedClasses&quot;
+              value=&quot;
+                java.lang.Object,
+                java.lang.Runtime,
+                java.lang.System,
+                java.lang.Class,
+                java.lang.ClassLoader,
+                java.lang.Shutdown,
+                ognl.OgnlContext,
+                ognl.MemberAccess,
+                ognl.ClassResolver,
+                ognl.TypeConverter,
+                com.opensymphony.xwork2.ActionContext&quot; /&gt;
+    &lt;!-- this must be valid regex, each &#39;.&#39; in package name must be 
escaped! --&gt;
+    &lt;constant name=&quot;struts.excludedPackageNamePatterns&quot; 
value=&quot;^java\.lang\..*,^ognl.*,^javax.*&quot; /&gt;]]></script>
+</div></div><p>Any expression or target which evaluates to one of these will 
be blocked and you see a WARN in logs:</p><div class="preformatted panel" 
style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>[WARNING] Target class [class example.MyBean] or declaring class of 
member type [public example.MyBean()] are excluded!</pre>
+</div></div><p>In that case&#160;<code>new MyBean()</code> was used to create 
a new instance of class (inside JSP) - it's blocked 
because&#160;<code>target</code> of such expression is evaluated 
to&#160;<code>java.lang.Class</code></p>    <div class="aui-message warning 
shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>It is possible to redefine the above constants 
in <code>struts.xml</code> but try to avoid this and rather change design of 
your application!</p>
+                    </div>
+    </div>
+<h4 id="Security-OGNLisusedtocallaction'smethods">OGNL is used to call 
action's methods</h4><p>This can impact actions which have large inheritance 
hierarchy and use the same method's name throughout the hierarchy, this was 
reported as an issue <a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/WW-4405";>WW-4405</a>. See the 
example below:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[public class RealAction extends BaseAction {  
+    @Action(&quot;save&quot;)
+    public String save() throws Exception {
+        super.save();
+        return SUCCESS;
+    }
+}    
+ 
+public class BaseAction extends AbstractAction {
+    public String save() throws Exception {
+        save(Double.MAX_VALUE);
+        return SUCCESS;
+    }
+}
+ 
+public abstract class AbstractAction extends ActionSupport {
+    protected void save(Double val) {
+        // some logic
+    }
+}]]></script>
+</div></div><p>In such case OGNL cannot properly map which method to call when 
request is coming. This is do the OGNL limitation. To solve the problem don't 
use the same method's names through the hierarchy, you can simply change the 
action's method from&#160;<code>save()</code> 
to&#160;<code>saveAction()</code>&#160;and leaving annotation as is to 
allow&#160;<span style="line-height: 1.4285715;">call this action 
via&#160;</span><code style="line-height: 1.4285715;">/save.action</code><span 
style="line-height: 1.4285715;"> request.</span></p></div>
         </div>
 
         

Modified: 
websites/production/struts/content/release/2.3.x/docs/sitegraph-plugin.html
==============================================================================
--- websites/production/struts/content/release/2.3.x/docs/sitegraph-plugin.html 
(original)
+++ websites/production/struts/content/release/2.3.x/docs/sitegraph-plugin.html 
Fri Nov 14 07:43:54 2014
@@ -179,7 +179,8 @@ siteGraph.render();
         <table><tr><td colspan="1" rowspan="1" class="gallery-image" 
style="width: 300px">
                                     <a shape="rect" class="gallery-link" 
href="sitegraph-plugin.data/example.gif?api=v2" rel="gallery-0" 
target="_gallery_slideshow" title=""><img border="0" 
src="sitegraph-plugin.thumbs/example.gif" width="300" height="243"></a>
                                 </td></tr><tr><td colspan="1" 
rowspan="1"></td></tr></table>
-</div><h4 id="SiteGraphPlugin-Settings">Settings</h4><p>This plugin doesn't 
allow for any global settings.</p><h4 
id="SiteGraphPlugin-Installation">Installation</h4><p>The SiteGraph plugin jar 
is distributed with Struts, so if you're up and running, you don't need to do 
download any additional Java packages. However, SiteGraph does require the 
"dot" package by <a shape="rect" class="external-link" 
href="http://www.graphviz.org"; rel="nofollow">GraphViz</a>.</p><p>You'll need 
to download the latest version of GraphViz and make sure that the dot 
executable (dot.exe in Windows) is in your command path. In Windows the 
GraphViz installer typically automatically adds <code>dot.exe</code> to your 
path. However, you may need to do this by hand depending on your system 
configuration.</p></div>
+</div>
+<h4 id="SiteGraphPlugin-Settings">Settings</h4><p>This plugin doesn't allow 
for any global settings.</p><h4 
id="SiteGraphPlugin-Installation">Installation</h4><p>The SiteGraph plugin jar 
is distributed with Struts, so if you're up and running, you don't need to do 
download any additional Java packages. However, SiteGraph does require the 
"dot" package by <a shape="rect" class="external-link" 
href="http://www.graphviz.org"; rel="nofollow">GraphViz</a>.</p><p>You'll need 
to download the latest version of GraphViz and make sure that the dot 
executable (dot.exe in Windows) is in your command path. In Windows the 
GraphViz installer typically automatically adds <code>dot.exe</code> to your 
path. However, you may need to do this by hand depending on your system 
configuration.</p></div>
         </div>
 
         


Reply via email to