struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lukaszlen...@apache.org
Subject svn commit: r986256 [1/3] - in /websites/production/struts/content: ./ docs/
Date Thu, 21 Apr 2016 14:34:52 GMT
Author: lukaszlenart
Date: Thu Apr 21 14:34:51 2016
New Revision: 986256

Log:
Updates production

Added:
    websites/production/struts/content/docs/s2-031.html
    websites/production/struts/content/docs/s2-032.html
    websites/production/struts/content/docs/version-notes-23203.html
    websites/production/struts/content/docs/version-notes-23243.html
    websites/production/struts/content/docs/version-notes-23281.html
Modified:
    websites/production/struts/content/announce-2014.html
    websites/production/struts/content/announce-2015.html
    websites/production/struts/content/announce.html
    websites/production/struts/content/archetype-catalog.xml
    websites/production/struts/content/builds.html
    websites/production/struts/content/coding-standards.html
    websites/production/struts/content/docs/core-developers-guide.html
    websites/production/struts/content/docs/guides.html
    websites/production/struts/content/docs/migration-guide.html
    websites/production/struts/content/docs/security-bulletins.html
    websites/production/struts/content/docs/version-notes-2328.html
    websites/production/struts/content/download.html
    websites/production/struts/content/downloads.html
    websites/production/struts/content/helping.html
    websites/production/struts/content/index.html
    websites/production/struts/content/kickstart.html
    websites/production/struts/content/primer.html
    websites/production/struts/content/releases.html
    websites/production/struts/content/security.html
    websites/production/struts/content/submitting-patches.html

Modified: websites/production/struts/content/announce-2014.html
==============================================================================
--- websites/production/struts/content/announce-2014.html (original)
+++ websites/production/struts/content/announce-2014.html Thu Apr 21 14:34:51 2016
@@ -145,58 +145,24 @@ Generated value of token can be predicta
 <ul>
   <li>merged security fixes from version 2.3.16.1, 2.3.16.2, 2.3.16.3</li>
   <li>extended existing security mechanism to block access to given Java packages and Classes</li>
-  <li>collection Parameters for <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>RedirectResult<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
-  <li>make <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>ParametersInterceptor<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> supports chinese in hash key by default</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>themes.properties<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> can be loaded using <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>ServletContext<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> allows to put template folder under WEB-INF or on classpath</li>
-  <li>new tag <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>datetextfield<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+  <li>collection Parameters for <code class="highlighter-rouge">RedirectResult</code></li>
+  <li>make <code class="highlighter-rouge">ParametersInterceptor</code> supports chinese in hash key by default</li>
+  <li><code class="highlighter-rouge">themes.properties</code> can be loaded using <code class="highlighter-rouge">ServletContext</code> allows to put template folder under WEB-INF or on classpath</li>
+  <li>new tag <code class="highlighter-rouge">datetextfield</code></li>
   <li>only valid Ognl expressions are cached</li>
-  <li>custom <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>TextProvider<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> can be used for validation errors of model driven actions</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>datetimepicker<span class="w">
-</span></pre></td></tr></tbody></table>
-</code>’s label fixed</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>PropertiesJudge<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> removed and properties are checked in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>SecurityMemberAccess<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+  <li>custom <code class="highlighter-rouge">TextProvider</code> can be used for validation errors of model driven actions</li>
+  <li><code class="highlighter-rouge">datetimepicker</code>’s label fixed</li>
+  <li><code class="highlighter-rouge">PropertiesJudge</code> removed and properties are checked in <code class="highlighter-rouge">SecurityMemberAccess</code></li>
   <li>resource reloading works in IBM JVM</li>
   <li>default reloading settings were removed from default.properties</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>commons-fileupload<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> library upgraded to version 1.3.1 to fix potential security vulnerability</li>
-  <li>the scheme attribute accepts expressions in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>s:url<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> tag</li>
-  <li>solves problem with infinite loop in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>FastByteArrayOutputStream<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>LocalizedTextUtil<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> supports many ClassLoaders</li>
+  <li><code class="highlighter-rouge">commons-fileupload</code> library upgraded to version 1.3.1 to fix potential security vulnerability</li>
+  <li>the scheme attribute accepts expressions in <code class="highlighter-rouge">s:url</code> tag</li>
+  <li>solves problem with infinite loop in <code class="highlighter-rouge">FastByteArrayOutputStream</code></li>
+  <li><code class="highlighter-rouge">LocalizedTextUtil</code> supports many ClassLoaders</li>
   <li>Bill of Materials pom was introduced</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>debug=browser|console<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> was migrated to jQuery</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>struts_dojo.js<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> was fixed</li>
-  <li>interface <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>org/apache/struts2/views/TagLibrary<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> was restored and marked as <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>@Depreacted<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+  <li><code class="highlighter-rouge">debug=browser|console</code> was migrated to jQuery</li>
+  <li><code class="highlighter-rouge">struts_dojo.js</code> was fixed</li>
+  <li>interface <code class="highlighter-rouge">org/apache/struts2/views/TagLibrary</code> was restored and marked as <code class="highlighter-rouge">@Depreacted</code></li>
 </ul>
 
 <p>and many other small improvements, please careful read the <a href="http://struts.apache.org/docs/version-notes-2320.html">version notes</a>.</p>
@@ -262,45 +228,26 @@ the correction wasn’t sufficient.</
 <p>In your struts.xml, replace all custom references to params-interceptor with the following code, especially regarding the class-pattern
 found at the beginning of the excludeParams list:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3</pre></td><td class="code"><pre>&lt;interceptor-ref name="params"&gt;
+<div class="highlighter-rouge"><pre class="highlight"><code>&lt;interceptor-ref name="params"&gt;
    &lt;param name="excludeParams"&gt;(.*\.|^|.*|\[('|"))(c|C)lass(\.|('|")]|\[).*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*&lt;/param&gt;
 &lt;/interceptor-ref&gt;
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <p>If you are using default interceptor stacks packaged in struts-default.xml, change your parent packages to a customized secured configuration
 as in the following example. Given you are using defaultStack so far, change your packages from</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5</pre></td><td class="code"><pre>&lt;package name="default" namespace="/" extends="struts-default"&gt;
+<div class="highlighter-rouge"><pre class="highlight"><code>&lt;package name="default" namespace="/" extends="struts-default"&gt;
     &lt;default-interceptor-ref name="defaultStack" /&gt;
     ...
     ...
 &lt;/package&gt;
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <p>to</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12</pre></td><td class="code"><pre>&lt;package name="default" namespace="/" extends="struts-default"&gt;
+<div class="highlighter-rouge"><pre class="highlight"><code>&lt;package name="default" namespace="/" extends="struts-default"&gt;
     &lt;interceptors&gt;
         &lt;interceptor-stack name="secureDefaultStack"&gt;
             &lt;interceptor-ref name="defaultStack"&gt;
@@ -312,8 +259,7 @@ as in the following example. Given you a
     &lt;default-interceptor-ref name="secureDefaultStack" /&gt;
     ...
 &lt;/package&gt; 
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <p>Please follow the Apache Struts Announcements to stay updated regarding the upcoming security release. Most likely the release will be available within the next 72 hours.
@@ -355,17 +301,12 @@ the commons-fileupload jar file in WEB-I
 Maven based Struts 2 projects, the following dependency needs to be
 added:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5</pre></td><td class="code"><pre>&lt;dependency&gt;
+<div class="highlighter-rouge"><pre class="highlight"><code>&lt;dependency&gt;
   &lt;groupId&gt;commons-fileupload&lt;/groupId&gt;
   &lt;artifactId&gt;commons-fileupload&lt;/artifactId&gt;
   &lt;version&gt;1.3.1&lt;/version&gt;
 &lt;/dependency&gt;
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <p>More details can be found here:</p>

Modified: websites/production/struts/content/announce-2015.html
==============================================================================
--- websites/production/struts/content/announce-2015.html (original)
+++ websites/production/struts/content/announce-2015.html Thu Apr 21 14:34:51 2016
@@ -160,9 +160,7 @@ to maintaining applications over time.</
 
 <ul>
   <li><a href="/docs/s2-026.html">S2-026</a>
-Special <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>top<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> object can be used to access Struts’ internals</li>
+Special <code class="highlighter-rouge">top</code> object can be used to access Struts’ internals</li>
 </ul>
 
 <p><strong>All developers are strongly advised to perform this action.</strong></p>
@@ -231,30 +229,16 @@ to maintaining applications over time.</
 
 <ul>
   <li>security fix from 2.3.20.1 is included</li>
-  <li>fixed flow in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>DefaultActionInvocation<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> and when using the Convention Plugin</li>
+  <li>fixed flow in <code class="highlighter-rouge">DefaultActionInvocation</code> and when using the Convention Plugin</li>
   <li>defined new plugin to support Java 8, check Java 8 Support Plugin</li>
-  <li>fixed problem with <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>style<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> attribute</li>
-  <li>fixed problem with converting values from <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>ActionContext<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+  <li>fixed problem with <code class="highlighter-rouge">style</code> attribute</li>
+  <li>fixed problem with converting values from <code class="highlighter-rouge">ActionContext</code></li>
   <li>converters are again applied to values coming from the context</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>struts.ognl.allowStaticMethodAccess<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> works again</li>
+  <li><code class="highlighter-rouge">struts.ognl.allowStaticMethodAccess</code> works again</li>
   <li>fixed memory leak in CDI plugin</li>
-  <li>fixed problem with hidden field which silently drops <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>label<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> attribute</li>
-  <li>fixed parameters encoding in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>ServletRedirectAction<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> before checking for valid URI</li>
-  <li><code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>css_xhtml<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> hidden input adding table row markup</li>
+  <li>fixed problem with hidden field which silently drops <code class="highlighter-rouge">label</code> attribute</li>
+  <li>fixed parameters encoding in <code class="highlighter-rouge">ServletRedirectAction</code> before checking for valid URI</li>
+  <li><code class="highlighter-rouge">css_xhtml</code> hidden input adding table row markup</li>
   <li>FreeMarker was upgraded to the latest available version - 2.3.22</li>
   <li>support for Log4j2 was added</li>
 </ul>
@@ -282,11 +266,7 @@ to maintaining applications over time.</
 
 <ul>
   <li><a href="/docs/s2-024.html">S2-024</a>
-Wrong <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>excludeParams<span class="w">
-</span></pre></td></tr></tbody></table>
-</code> overrides those defined in <code class="highlighter-rouge"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>DefaultExcludedPatternsChecker<span class="w">
-</span></pre></td></tr></tbody></table>
-</code></li>
+Wrong <code class="highlighter-rouge">excludeParams</code> overrides those defined in <code class="highlighter-rouge">DefaultExcludedPatternsChecker</code></li>
 </ul>
 
 <p><strong>All developers are strongly advised to perform this action.</strong></p>

Modified: websites/production/struts/content/announce.html
==============================================================================
--- websites/production/struts/content/announce.html (original)
+++ websites/production/struts/content/announce.html Thu Apr 21 14:34:51 2016
@@ -124,6 +124,70 @@
   Skip to: <a href="announce-2015.html">Announcements - 2015</a>
 </p>
 
+<h4 id="a20160419">19 April 2016 - Struts 2.3.28.1 General Availability with Security Fixes Release</h4>
+
+<p>The Apache Struts group is pleased to announce that Struts 2.3.28.1 is available as a “General Availability”
+release. The GA designation is our highest quality grade.</p>
+
+<p>Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications.
+The framework is designed to streamline the full development cycle, from building, to deploying,
+to maintaining applications over time.</p>
+
+<p>This release addresses two potential security vulnerabilities:</p>
+
+<ul>
+  <li>
+    <p><a href="/docs/s2-031.html">S2-031</a>
+Possible RCE vulnerability in <code class="highlighter-rouge">XSLTResult</code> was fixed.</p>
+  </li>
+  <li>
+    <p><a href="/docs/s2-032.html">S2-032</a>
+Prevents execution of chained expressions based on new <code class="highlighter-rouge">isSequence</code> flag introduce in appropriated OGNL versions.</p>
+  </li>
+</ul>
+
+<p><strong>All developers are strongly advised to perform this action.</strong></p>
+
+<p>The 2.3.x series of the Apache Struts framework has a minimum requirement of the following specification versions:
+Servlet API 2.4, JSP API 2.0, and Java 6.</p>
+
+<p>Should any issues arise with your use of any version of the Struts framework, please post your comments
+to the user list, and, if appropriate, file a tracking ticket.</p>
+
+<h4 id="a20160419-1">19 April 2016 - Struts 2.3.20.3 &amp; 2.3.24.3 General Availability with Security Fixes Release</h4>
+
+<p>The Apache Struts group is pleased to announce that Struts 2.3.20.3 &amp; Struts 2.3.24.3 are available as a “General Availability”
+releases. The GA designation is our highest quality grade.</p>
+
+<p>Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications.
+The framework is designed to streamline the full development cycle, from building, to deploying,
+to maintaining applications over time.</p>
+
+<p>This release addresses two potential security vulnerabilities:</p>
+
+<ul>
+  <li>
+    <p><a href="/docs/s2-029.html">S2-029</a>
+Forced double OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution.</p>
+  </li>
+  <li>
+    <p><a href="/docs/s2-031.html">S2-031</a>
+Possible RCE vulnerability in <code class="highlighter-rouge">XSLTResult</code> was fixed.</p>
+  </li>
+  <li>
+    <p><a href="/docs/s2-032.html">S2-032</a>
+Prevents execution of chained expressions based on new <code class="highlighter-rouge">isSequence</code> flag introduce in appropriated OGNL versions.</p>
+  </li>
+</ul>
+
+<p><strong>All developers are strongly advised to perform this action.</strong></p>
+
+<p>The 2.3.x series of the Apache Struts framework has a minimum requirement of the following specification versions:
+Servlet API 2.4, JSP API 2.0, and Java 6.</p>
+
+<p>Should any issues arise with your use of any version of the Struts framework, please post your comments
+to the user list, and, if appropriate, file a tracking ticket.</p>
+
 <h4 id="a20160318">18 March 2016 - Struts 2.3.28 General Availability with Security Fix Release</h4>
 
 <p>The Apache Struts group is pleased to announce that Struts 2.3.28 is available as a “General Availability”

Modified: websites/production/struts/content/archetype-catalog.xml
==============================================================================
Binary files - no diff available.

Modified: websites/production/struts/content/builds.html
==============================================================================
--- websites/production/struts/content/builds.html (original)
+++ websites/production/struts/content/builds.html Thu Apr 21 14:34:51 2016
@@ -135,16 +135,14 @@ your own copy of the product, use the so
 
 <p>With the <a href="http://git-scm.com/">Git client</a> installed, obtaining a working copy of the Struts codebase is as simple as</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>&gt; git clone http://git.apache.org/struts.git
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>&gt; git clone http://git.apache.org/struts.git
+</code></pre>
 </div>
 
 <p>(Committers with write access should use the <strong>https</strong> protocol instead)</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>&gt; git clone https://git-wip-us.apache.org/repos/asf/struts.git
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>&gt; git clone https://git-wip-us.apache.org/repos/asf/struts.git
+</code></pre>
 </div>
 
 <p>For more about using version control systems at Apache, see the ASF’s
@@ -159,16 +157,14 @@ your own applications!)</p>
 
 <p>With Maven installed, building a Struts codebase is as simple as</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>&gt; mvn install
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>&gt; mvn install
+</code></pre>
 </div>
 
 <p>or</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>&gt; mvn -DskipAssembly=true install
-</pre></td></tr></tbody></table>
-</div>
+<div class="highlighter-rouge"><pre class="highlight"><code>&gt; mvn -DskipAssembly=true install
+</code></pre>
 </div>
 
 <p>Maven will automatically download any dependencies as needed.</p>
@@ -211,21 +207,14 @@ of the distribution may be upgraded to �
 and then made available through ibiblio and other public Maven repositories. To obtain an early distribution via Maven,
 specify the ASF Snapshot repository in the project’s POM.</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7</pre></td><td class="code"><pre>&lt;repositories&gt;
+<div class="highlighter-rouge"><pre class="highlight"><code>&lt;repositories&gt;
     &lt;repository&gt;
         &lt;id&gt;apache.snapshots&lt;/id&gt;
         &lt;name&gt;ASF Maven 2 Snapshot&lt;/name&gt;
         &lt;url&gt;https://repository.apache.org/content/groups/snapshots/&lt;/url&gt;
     &lt;/repository&gt;
 &lt;/repositories&gt;
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <h1 id="licensing-of-apache-struts-builds">Licensing of Apache Struts Builds</h1>

Modified: websites/production/struts/content/coding-standards.html
==============================================================================
--- websites/production/struts/content/coding-standards.html (original)
+++ websites/production/struts/content/coding-standards.html Thu Apr 21 14:34:51 2016
@@ -152,14 +152,7 @@ or improving.</p>
 
 <p>The original source code:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8</pre></td><td class="code"><pre>// Hidden input section
+<div class="highlighter-rouge"><pre class="highlight"><code>// Hidden input section
 a = new Attributes();
 a.add("type", "hidden")
     .add("id", "__multiselect_" + StringUtils.defaultString(StringEscapeUtils.escapeHtml4(id)))
@@ -167,28 +160,12 @@ a.add("type", "hidden")
     .add("value", "").addIfTrue("disabled", disabled);
 start("input", a);
 end("input");
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <p>After applying default reformatting (80 columns margin):</p>
 
-<div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16</pre></td><td class="code"><pre>// Hidden input section
+<div class="highlighter-rouge"><pre class="highlight"><code>// Hidden input section
 a = new Attributes();
 a.add("type", "hidden")
     .add("id",
@@ -204,8 +181,7 @@ a.add("type", "hidden")
     .add("value", "").addIfTrue("disabled", disabled);
 start("input", a);
 end("input");
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
 </div>
 
 <p>Some suggestions how to improve the code:</p>
@@ -214,31 +190,25 @@ end("input");
   <li>
     <p>use static imports</p>
 
-    <div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2</pre></td><td class="code"><pre>  a.add("type", "hidden")
+    <div class="highlighter-rouge"><pre class="highlight"><code>  a.add("type", "hidden")
    .add("id", "__multiselect_" + defaultString(escapeHtml4(id)));
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
     </div>
   </li>
   <li>
     <p>use dedicated method</p>
 
-    <div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2</pre></td><td class="code"><pre>  a.add("type", "hidden")
+    <div class="highlighter-rouge"><pre class="highlight"><code>  a.add("type", "hidden")
    .add("id", "__multiselect_" + safeId(id));
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
     </div>
   </li>
   <li>
     <p>use builder</p>
 
-    <div class="highlighter-rouge"><div class="highlight"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
-2</pre></td><td class="code"><pre>  a.add("type", "hidden")
+    <div class="highlighter-rouge"><pre class="highlight"><code>  a.add("type", "hidden")
    .add("id", HtmlID.with("__multiselect_").withSafeId(id).create());
-</pre></td></tr></tbody></table>
-</div>
+</code></pre>
     </div>
   </li>
 </ul>

Modified: websites/production/struts/content/docs/core-developers-guide.html
==============================================================================
--- websites/production/struts/content/docs/core-developers-guide.html (original)
+++ websites/production/struts/content/docs/core-developers-guide.html Thu Apr 21 14:34:51 2016
@@ -125,7 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><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="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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" href="security.html">Sec
 urity</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="https://depressedprogrammer.wordpress.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">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" h
 ref="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="CoreDevelopersGuide-Next:">Next: <a shape="rect" href="tag-developers-guide.html">Tag Developers Guide</a></h2></div>
+            <div id="ConfluenceContent"><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="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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/lightbulb_on.png" data-emoticon-name="light-on" alt="(lightbulb)"><a shape="rect" href="security.html">Sec
 urity</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="https://depressedprogrammer.wordpress.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">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" h
 ref="cookbook.html">Cookbook</a></li></ul></li><li><a shape="rect" class="external-link" href="http://struts.apache.org/maven/struts2-core/apidocs/index.html">Javadoc APIs</a></li></ul></td></tr></tbody></table></div><h2 id="CoreDevelopersGuide-Next:">Next: <a shape="rect" href="tag-developers-guide.html">Tag Developers Guide</a></h2></div>
         </div>
 
                     <div class="tabletitle">

Modified: websites/production/struts/content/docs/guides.html
==============================================================================
--- websites/production/struts/content/docs/guides.html (original)
+++ websites/production/struts/content/docs/guides.html Thu Apr 21 14:34:51 2016
@@ -125,10 +125,10 @@ 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="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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-CoreDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13945"><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">re
 sults</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">A
 ctions</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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.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="https://depressedprogrammer.wordpress.com/2007/06/18/unit-testing-struts-2-actions-sprin
 g-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">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-TagDevelopersGuidehttps://cwiki.apache.org/confluence/
 pages/viewpage.action?pageId=14324"><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.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 shap
 e="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-PluginDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=44163"><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 wit
 h 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><h3 id="Guides-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> (2.3.1+)</li><li><a shape="rect" href="codebehind-plugin.html">Codebehind Plugin</a> (&lt; 2.5)</li><li><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR Plugin</a></li><li><a shape="rect" href="em
 bedded-jsp-plugin.html">Embedded JSP Plugin</a> (2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a> (2.3.21+)</li><li><a shape="rect" href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span>&lt; 2.5<span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit Plugin</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect" href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect" href="portlet-plugin.html">Portlet Plugin</a></li><li><a s
 hape="rect" href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a> <span>(</span>&lt; 2.5<span>)</span></li><li><a shape="rect" href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" href="tiles-plugin.html">Tiles Plugin</a></li><li><a shape="rect" href="tiles-3-plugin.html">Tiles 3 Plugin</a> (&lt; 2.5)</li></ul></td></tr></tbody></table></div><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.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-ArchitectsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=45478"><a shape="rect" href="architects-guide.html">Architects Guide</a></h2><p>
+            <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="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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-CoreDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13945"><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">re
 sults</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">A
 ctions</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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.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="https://depressedprogrammer.wordpress.com/2007/06/18/unit-testing-struts-2-actions-sprin
 g-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">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/maven/struts2-core/apidocs/index.html">Javadoc APIs</a></li></ul></td></tr></tbody></table></div><h2 id="Guides-TagDevelopersGuidehttps://cwiki.apache.org/confluenc
 e/pages/viewpage.action?pageId=14324"><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.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 sh
 ape="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-PluginDevelopersGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=44163"><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 w
 ith 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><h3 id="Guides-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> (2.3.1+)</li><li><a shape="rect" href="codebehind-plugin.html">Codebehind Plugin</a> (&lt; 2.5)</li><li><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR Plugin</a></li><li><a shape="rect" href="
 embedded-jsp-plugin.html">Embedded JSP Plugin</a> (2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a> (2.3.21+)</li><li><a shape="rect" href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span>&lt; 2.5<span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit Plugin</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect" href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect" href="portlet-plugin.html">Portlet Plugin</a></li><li><a
  shape="rect" href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a> <span>(</span>&lt; 2.5<span>)</span></li><li><a shape="rect" href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" href="tiles-plugin.html">Tiles Plugin</a></li><li><a shape="rect" href="tiles-3-plugin.html">Tiles 3 Plugin</a> (&lt; 2.5)</li></ul></td></tr></tbody></table></div><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and third-party plugi
 ns, visit the <a shape="rect" class="external-link" href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2 id="Guides-ArchitectsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=45478"><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-MigrationGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13981"><a shape="rect" href="migration-guide.html">Migration Guide</a></h2><p>Getting here from there.</p><h3 id="Guides-VersionNotes2.5.x">Version Notes 2.5.x</h3><ul><li><a shape="rect" href="version-notes-25.html">Version Notes 2.5</a></li></ul><h3 id="Guides-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a shape="rect" href="version-notes-2328.html">Version Notes 2.3.28</a></li><li><a shape="rect" href="version-notes-23241.html">Version Notes 2.3.24.1</a></li><li><a shape="rect" href="version-notes-2324.html">Version Notes 2.3.24</a></li><li><a shape="rect" href="version-notes-23201.html">Version Notes 2.3.20.1</a></li><li><a shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a sha
 pe="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="re
 ct" 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 ov
 erall 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://s
 truts.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.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-s
 trategies.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-ContributorsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=14041"><a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2><p>
+	</li></ul><h2 id="Guides-MigrationGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=13981"><a shape="rect" href="migration-guide.html">Migration Guide</a></h2><p>Getting here from there.</p><h3 id="Guides-VersionNotes2.5.x">Version Notes 2.5.x</h3><ul><li><a shape="rect" href="version-notes-25.html">Version Notes 2.5</a></li></ul><h3 id="Guides-VersionNotes2.3.x">Version Notes 2.3.x</h3><ul><li><a shape="rect" href="version-notes-23281.html">Version Notes 2.3.28.1</a></li><li><a shape="rect" href="version-notes-2328.html">Version Notes 2.3.28</a></li><li><a shape="rect" href="version-notes-23243.html">Version Notes 2.3.24.3</a></li><li><a shape="rect" href="version-notes-23241.html">Version Notes 2.3.24.1</a></li><li><a shape="rect" href="version-notes-2324.html">Version Notes 2.3.24</a></li><li><a shape="rect" href="version-notes-23203.html">Version Notes 2.3.20.3</a></li><li><a shape="rect" href="version-notes-23201.html">Version Notes 2.3.20.1</a></li><li><a 
 shape="rect" href="version-notes-2320.html">Version Notes 2.3.20</a></li><li><a shape="rect" href="version-notes-23163.html">Version Notes 2.3.16.3</a></li><li><a shape="rect" href="version-notes-23162.html">Version Notes 2.3.16.2</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a shape="rect" href="version-notes-2316.html">Version Notes 2.3.16</a></li><li><a shape="rect" href="version-notes-23153.html">Version Notes 2.3.15.3</a></li><li><a shape="rect" href="version-notes-23152.html">Version Notes 2.3.15.2</a></li><li><a shape="rect" href="version-notes-23151.html">Version Notes 2.3.15.1</a></li><li><a shape="rect" href="version-notes-2315.html">Version Notes 2.3.15</a></li><li><a shape="rect" href="version-notes-23143.html">Version Notes 2.3.14.3</a></li><li><a shape="rect" href="version-notes-23142.html">Version Notes 2.3.14.2</a></li><li><a shape="rect" href="version-notes-23141.html">Version Notes 2.3.14.1</a></li><li><a shape="rect
 " href="version-notes-2314.html">Version Notes 2.3.14</a></li><li><a shape="rect" href="version-notes-23120.html">Version Notes 2.3.12.0</a></li><li><a shape="rect" href="version-notes-238.html">Version Notes 2.3.8</a></li><li><a shape="rect" href="version-notes-237.html">Version Notes 2.3.7</a></li><li><a shape="rect" href="version-notes-2341.html">Version Notes 2.3.4.1</a></li><li><a shape="rect" href="version-notes-234.html">Version Notes 2.3.4</a></li><li><a shape="rect" href="version-notes-233.html">Version Notes 2.3.3</a></li><li><a shape="rect" href="version-notes-2312.html">Version Notes 2.3.1.2</a></li><li><a shape="rect" href="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!) encounter
 ed 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 (Se
 p 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.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-ContributorsGuidehttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=14041"><a shape="rect" href="contributors-guide.html">Contributors Guide</a></h2><p>
 
 </p><h3 id="Guides-Source">Source</h3>
 
@@ -149,7 +149,7 @@ under the License.
 
 <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="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>To 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>
+<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="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>To 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><p>&#160;</p></div>
         </div>
 
                     <div class="tabletitle">



Mime
View raw message