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

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

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

Modified: websites/production/struts/content/docs/cdi-plugin.html
==============================================================================
--- websites/production/struts/content/docs/cdi-plugin.html (original)
+++ websites/production/struts/content/docs/cdi-plugin.html Mon Feb 29 19:38:05 
2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884633827 {padding: 0px;}
-div.rbtoc1453884633827 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884633827 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773768877 {padding: 0px;}
+div.rbtoc1456773768877 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773768877 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1453884633827">
+/*]]>*/</style><div class="toc-macro rbtoc1456773768877">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#CDIPlugin-Overview">Overview</a></li><li><a shape="rect" 
href="#CDIPlugin-Setup">Setup</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#CDIPlugin-MavenSetup">Maven Setup</a></li><li><a shape="rect" 
href="#CDIPlugin-ManualIntegration">Manual Integration</a></li><li><a 
shape="rect" href="#CDIPlugin-Configuration">Configuration</a></li></ul>
 </li><li><a shape="rect" href="#CDIPlugin-Usage">Usage</a>

Modified: 
websites/production/struts/content/docs/configuration-provider-configuration.html
==============================================================================
--- 
websites/production/struts/content/docs/configuration-provider-configuration.html
 (original)
+++ 
websites/production/struts/content/docs/configuration-provider-configuration.html
 Mon Feb 29 19:38:05 2016
@@ -138,12 +138,8 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>The ConfigurationProvider interface 
describes the framework's configuration. By default, the framework loads its 
configurations via an XML document by using the 
<code>StrutsXmlConfigurationProvider</code>. The provider can be configured 
through a Dispatcher's <a shape="rect" 
href="dispatcherlistener.html">DispatcherListener</a>. </p>
-
-<h2 id="ConfigurationProvider&amp;Configuration-Example">Example</h2>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
- static {
+            <div id="ConfluenceContent"><p>The ConfigurationProvider interface 
describes the framework's configuration. By default, the framework loads its 
configurations via an XML document by using the 
<code>StrutsXmlConfigurationProvider</code>. The provider can be configured 
through a Dispatcher's <a shape="rect" 
href="dispatcherlistener.html">DispatcherListener</a>.</p><h2 
id="ConfigurationProvider&amp;Configuration-Example">Example</h2><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;"> static {
    Dispatcher.addDispatcherListener(new DispatcherListener() {
      ....
      public void dispatcherInitialized(Dispatcher du) {
@@ -154,9 +150,7 @@ under the License.
    });
  }
 </pre>
-</div></div> 
-
-<h2 id="ConfigurationProvider&amp;Configuration-BackTo:">Back To: <a 
shape="rect" href="architects-guide.html">Architects Guide</a></h2></div>
+</div></div><h2 
id="ConfigurationProvider&amp;Configuration-Configurationprovider">Configuration
 provider</h2><p><code>ConfigurationProvider</code> is the basic piece of 
configuration used to tie all the options together in 
<code>ConfigurationManager</code>. There is few different implementations that 
are already used internally by the Apache Struts:</p><ul 
style="list-style-type: square;"><li><code style="line-height: 
1.42857;">XmlConfigurationProvider</code> - proprietary XWork implementation 
which are using <code>xwork.xml</code> file as source of 
configuration&#160;</li><li><code>StrutsXmlConfigurationProvider</code> - 
primary configuration provider, represents&#160;<code>struts.xml</code> 
and&#160;<code>struts-plugin.xml</code> 
files</li><li><code>PropertiesConfigurationProvider</code> - used to 
load&#160;<code>struts.properties</code></li><li><code>ServletContextAwareConfigurationProvider</code>
 - marking interface allowing to inject&#160;<code>ServletContext</code> into 
provi
 der</li></ul><p>To inject your custom configuration provider 
use&#160;<code>configProviders</code>&#160;<code>&lt;init-param/&gt;</code> 
in&#160;<a shape="rect" href="webxml.html">web.xml</a></p><h2 
id="ConfigurationProvider&amp;Configuration-BackTo:">Back To: <a shape="rect" 
href="architects-guide.html">Architects Guide</a></h2></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/control-tags.html
==============================================================================
--- websites/production/struts/content/docs/control-tags.html (original)
+++ websites/production/struts/content/docs/control-tags.html Mon Feb 29 
19:38:05 2016
@@ -133,7 +133,7 @@ under the License.
 
 <p>@see src/META-INF/taglib.tld </p>
 
-<h2 id="ControlTags-Next:">Next: <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=test&amp;title=Data+Tags";>Data
 Tags</a></h2></div>
+<h2 id="ControlTags-Next:">Next: <a shape="rect" class="unresolved" 
href="#">Data Tags</a></h2></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/convention-plugin.html
==============================================================================
--- websites/production/struts/content/docs/convention-plugin.html (original)
+++ websites/production/struts/content/docs/convention-plugin.html Mon Feb 29 
19:38:05 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884533921 {padding: 0px;}
-div.rbtoc1453884533921 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1453884533921 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773694526 {padding: 0px;}
+div.rbtoc1456773694526 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1456773694526 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884533921">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773694526">
 <ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a 
shape="rect" 
href="#ConventionPlugin-Introduction">Introduction</a></li><li><span 
class="TOCOutline">2</span> <a shape="rect" 
href="#ConventionPlugin-Setup">Setup</a></li><li><span 
class="TOCOutline">3</span> <a shape="rect" 
href="#ConventionPlugin-ConvertingaCodebehindbasedapplicationtoConvention">Converting
 a Codebehind based application to Convention</a></li><li><span 
class="TOCOutline">4</span> <a shape="rect" 
href="#ConventionPlugin-Helloworld">Hello world</a></li><li><span 
class="TOCOutline">5</span> <a shape="rect" 
href="#ConventionPlugin-Codebehindhelloworld">Code behind hello 
world</a></li><li><span class="TOCOutline">6</span> <a shape="rect" 
href="#ConventionPlugin-Resultsandresultcodes">Results and result codes</a>
 <ul class="toc-indentation"><li><span class="TOCOutline">6.1</span> <a 
shape="rect" href="#ConventionPlugin-Multiplenames">Multiple names</a></li></ul>
 </li><li><span class="TOCOutline">7</span> <a shape="rect" 
href="#ConventionPlugin-Chaining">Chaining</a></li><li><span 
class="TOCOutline">8</span> <a shape="rect" 
href="#ConventionPlugin-XWorkpackages">XWork packages</a></li><li><span 
class="TOCOutline">9</span> <a shape="rect" 
href="#ConventionPlugin-Annotationreference">Annotation reference</a>

Modified: 
websites/production/struts/content/docs/create-struts-2-web-application-with-artifacts-in-web-inf-lib-and-use-ant-to-build-the-application.html
==============================================================================
--- 
websites/production/struts/content/docs/create-struts-2-web-application-with-artifacts-in-web-inf-lib-and-use-ant-to-build-the-application.html
 (original)
+++ 
websites/production/struts/content/docs/create-struts-2-web-application-with-artifacts-in-web-inf-lib-and-use-ant-to-build-the-application.html
 Mon Feb 29 19:38:05 2016
@@ -263,7 +263,7 @@ under the License.
 </div></div> 
 <p>This minimal Struts 2 configuration file tells the framework that if the 
URL ends in index.action to redirect the browser to index.jsp.</p>
 
-<p>For more information about the struts.xml configuration file see <a 
shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=XML&amp;linkCreation=true&amp;fromPageId=14811863";>XML</a>.</p>
+<p>For more information about the struts.xml configuration file see <a 
shape="rect" class="unresolved" href="#">XML</a>.</p>
 
 <h3 
id="CreateStruts2WebApplicationWithArtifactsInWEB-INFlibandUseAntToBuildTheApplication-Step7-BuildandRuntheApplication">Step
 7 - Build and Run the Application</h3>
 <p>With all of the above in place run the Ant target that creates the war file 
(in the example download that target is archive).  Remove the previously 
created war file and exploded web application folder from your Servlet 
container's webapps folder.  Copy to your Servlet container's webapps folder 
the new war you just created.  </p>

Modified: websites/production/struts/content/docs/crud-demo-i.html
==============================================================================
--- websites/production/struts/content/docs/crud-demo-i.html (original)
+++ websites/production/struts/content/docs/crud-demo-i.html Mon Feb 29 
19:38:05 2016
@@ -645,7 +645,7 @@ errors.required.age.limit=Please provide
 
 <h2 id="CRUDDemoI-Conclusion">Conclusion</h2>
 
-<p>This 'quick intro' turned out a bit longer than I anticipated. We haven't 
even barely touched the possibilities with Struts 2 - different templates, IoC 
(Pico, Spring), annotations, REST-ful action mappings, components, Hibernate 
integration, ajax support, pdf/xml/rss/.. generation, groovy, ... More info on 
<a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=3rd+party+integration&amp;linkCreation=true&amp;fromPageId=14178";>3rd
 party integration</a>.</p>
+<p>This 'quick intro' turned out a bit longer than I anticipated. We haven't 
even barely touched the possibilities with Struts 2 - different templates, IoC 
(Pico, Spring), annotations, REST-ful action mappings, components, Hibernate 
integration, ajax support, pdf/xml/rss/.. generation, groovy, ... More info on 
<a shape="rect" class="unresolved" href="#">3rd party integration</a>.</p>
 
 <p>When you look at the various frameworks out there, they all let you create 
a certain type of (web) application really, really quickly. It's only when you 
want to add new/different/complex things, that you discover the limitations of 
the framework, often meaning serious hacking to get it working. Struts 2 is 
different. It is no out-of-the-box framework, where you just click a few 
buttons to generate a blog/cms/product catalog, but it's a framework in the 
true spirit of the word. Its architecture and design is so flexible that we yet 
have to discover where we cannot use it for, and as such it's a great overall 
framework that should belong in the backpack of any serious Java 
(web)application programmer.</p></div>
         </div>

Modified: websites/production/struts/content/docs/cssxhtml-form-template.html
==============================================================================
--- websites/production/struts/content/docs/cssxhtml-form-template.html 
(original)
+++ websites/production/struts/content/docs/cssxhtml-form-template.html Mon Feb 
29 19:38:05 2016
@@ -128,7 +128,7 @@ under the License.
             <div id="ConfluenceContent">
 
 
-<p>The css_xhtml <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=test&amp;title=form";>form</a>
 template is almost exactly like the <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=test&amp;title=xhtml+form+template";>xhtml
 form template</a>, including support for <a shape="rect" 
href="pure-javascript-client-side-validation.html">Pure JavaScript Client Side 
Validation</a>. The only difference is that instead of printing out an opening 
and closing <code>&lt;table&gt;</code> element, there are no elements. Instead, 
the CSS rules for the individual HTML tags are assumed to handle all dislay 
logic. However, as noted, client side validation is still supported.</p></div>
+<p>The css_xhtml <a shape="rect" class="unresolved" href="#">form</a> template 
is almost exactly like the <a shape="rect" class="unresolved" href="#">xhtml 
form template</a>, including support for <a shape="rect" 
href="pure-javascript-client-side-validation.html">Pure JavaScript Client Side 
Validation</a>. The only difference is that instead of printing out an opening 
and closing <code>&lt;table&gt;</code> element, there are no elements. Instead, 
the CSS rules for the individual HTML tags are assumed to handle all dislay 
logic. However, as noted, client side validation is still supported.</p></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/faqs.html
==============================================================================
--- websites/production/struts/content/docs/faqs.html (original)
+++ websites/production/struts/content/docs/faqs.html Mon Feb 29 19:38:05 2016
@@ -189,7 +189,7 @@ under the License.
 
 <h3 id="FAQs-Tags"><a shape="rect" 
href="tag-developers-guide.html">Tags</a></h3>
 
-<ul><li><a shape="rect" 
href="why-do-the-form-tags-put-table-tags-around-controls.html">Why do the form 
tags put table tags around controls</a>?</li><li><a shape="rect" 
href="how-can-i-put-a-string-literal-in-a-javascript-call-for-instance-in-an-onchange-attribute.html">How
 can I put a String literal in a Javascript call, for instance in an onChange 
attribute</a>?</li><li><a shape="rect" 
href="why-wont-the-if-tag-evaluate-a-one-char-string.html">Why won't the 'if' 
tag evaluate a one char string</a>?</li><li><a shape="rect" 
href="why-does-freemarker-complain-that-theres-an-error-in-my-user-directive-when-i-used-jsp-tag.html">Why
 does FreeMarker complain that there's an error in my user-directive when I 
used JSP Tag</a>?</li><li><a shape="rect" 
href="can-an-action-tag-run-another-method-apart-from-the-default-execute-method.html">Can
 an action tag run another method apart from the default execute 
method</a>?</li><li><a shape="rect" 
href="why-didnt-my-action-tag-get-executed-when-i-hav
 e-validation-errors.html">Why didn't my action tag get executed when I have 
validation errors</a>?</li><li><a shape="rect" 
href="why-are-request-parameters-appended-to-our-hyperlinks.html">Why are 
request parameters appended to our hyperlinks</a>?</li><li><a shape="rect" 
class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=why+doesn%27t+the+if+tag+evaluate+params+properly&amp;linkCreation=true&amp;fromPageId=14182";>Why
 doesn't the if tag evaluate test="#parameters.someParam ... " 
properly</a></li><li><a shape="rect" 
href="how-do-i-render-a-single-radio-button.html">How do I render a single 
radio button</a>?</li><li>&#65279;<a shape="rect" 
href="why-do-i-get-a-javaxelelexception-when-using-ognl-with-jsp21.html">Why do 
I get a javax.el.ELException when using OGNL with JSP2.1?</a></li><li><a 
shape="rect" 
href="why-cant-i-use-jstl-style-el-expressions-in-struts-tags.html">Why can't I 
use JSTL-style EL expressions in Struts tags?</a><
 /li><li><a shape="rect" 
href="how-can-i-iterate-over-a-range-like-with-jstls-foreach-tag.html">How can 
I iterate over a range, like with JSTL's forEach tag?</a></li></ul>
+<ul><li><a shape="rect" 
href="why-do-the-form-tags-put-table-tags-around-controls.html">Why do the form 
tags put table tags around controls</a>?</li><li><a shape="rect" 
href="how-can-i-put-a-string-literal-in-a-javascript-call-for-instance-in-an-onchange-attribute.html">How
 can I put a String literal in a Javascript call, for instance in an onChange 
attribute</a>?</li><li><a shape="rect" 
href="why-wont-the-if-tag-evaluate-a-one-char-string.html">Why won't the 'if' 
tag evaluate a one char string</a>?</li><li><a shape="rect" 
href="why-does-freemarker-complain-that-theres-an-error-in-my-user-directive-when-i-used-jsp-tag.html">Why
 does FreeMarker complain that there's an error in my user-directive when I 
used JSP Tag</a>?</li><li><a shape="rect" 
href="can-an-action-tag-run-another-method-apart-from-the-default-execute-method.html">Can
 an action tag run another method apart from the default execute 
method</a>?</li><li><a shape="rect" 
href="why-didnt-my-action-tag-get-executed-when-i-hav
 e-validation-errors.html">Why didn't my action tag get executed when I have 
validation errors</a>?</li><li><a shape="rect" 
href="why-are-request-parameters-appended-to-our-hyperlinks.html">Why are 
request parameters appended to our hyperlinks</a>?</li><li><a shape="rect" 
class="unresolved" href="#">Why doesn't the if tag evaluate 
test="#parameters.someParam ... " properly</a></li><li><a shape="rect" 
href="how-do-i-render-a-single-radio-button.html">How do I render a single 
radio button</a>?</li><li>&#65279;<a shape="rect" 
href="why-do-i-get-a-javaxelelexception-when-using-ognl-with-jsp21.html">Why do 
I get a javax.el.ELException when using OGNL with JSP2.1?</a></li><li><a 
shape="rect" 
href="why-cant-i-use-jstl-style-el-expressions-in-struts-tags.html">Why can't I 
use JSTL-style EL expressions in Struts tags?</a></li><li><a shape="rect" 
href="how-can-i-iterate-over-a-range-like-with-jstls-foreach-tag.html">How can 
I iterate over a range, like with JSTL's forEach tag?</a></li></ul>
 
 
 <h3 id="FAQs-POJOs">POJOs</h3>

Modified: websites/production/struts/content/docs/file-upload.html
==============================================================================
--- websites/production/struts/content/docs/file-upload.html (original)
+++ websites/production/struts/content/docs/file-upload.html Mon Feb 29 
19:38:05 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>The Struts 2 framework provides 
built-in support for processing file uploads that conform to <a shape="rect" 
class="external-link" href="http://www.ietf.org/rfc/rfc1867.txt"; 
rel="nofollow">RFC 1867</a>, "Form-based File Upload in HTML". When correctly 
configured the framework will pass uploaded file(s) into your Action class. 
Support for individual and multiple file uploads are provided. When a file is 
uploaded it will typically be stored in a temporary directory. Uploaded files 
should be processed or moved by your Action class to ensure the data is not 
lost. Be aware that servers may have a security policy in place that prohibits 
you from writing to directories other than the temporary directory and the 
directories that belong to your web application.</p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1453884514716 {padding: 0px;}
-div.rbtoc1453884514716 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884514716 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773683348 {padding: 0px;}
+div.rbtoc1456773683348 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773683348 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884514716">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773683348">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FileUpload-Dependencies">Dependencies</a></li><li><a shape="rect" 
href="#FileUpload-BasicUsage">Basic Usage</a></li><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFiles">Uploading Multiple Files</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple Files 
using Arrays</a></li><li><a shape="rect" 
href="#FileUpload-UploadingMultipleFilesusingLists">Uploading Multiple Files 
using Lists</a></li></ul>
 </li><li><a shape="rect" href="#FileUpload-AdvancedConfiguration">Advanced 
Configuration</a>

Modified: websites/production/struts/content/docs/form-tags.html
==============================================================================
--- websites/production/struts/content/docs/form-tags.html (original)
+++ websites/production/struts/content/docs/form-tags.html Mon Feb 29 19:38:05 
2016
@@ -148,7 +148,7 @@ under the License.
 <h2 id="FormTags-TooltipRelatedAttributes">Tooltip Related Attributes</h2>
 <p><table border="1" summary=""><tr><td colspan="1" 
rowspan="1">Attribute</td><td colspan="1" rowspan="1">Data Type</td><td 
colspan="1" rowspan="1">Default</td><td colspan="1" 
rowspan="1">Description</td></tr><tr><td colspan="1" 
rowspan="1">tooltip</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">none</td><td colspan="1" rowspan="1">Set the tooltip of this 
particular component</td></tr><tr><td colspan="1" 
rowspan="1">jsTooltipEnabled</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">false</td><td colspan="1" rowspan="1">Enable js tooltip 
rendering</td></tr><tr><td colspan="1" rowspan="1">tooltipIcon</td><td 
colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">/struts/static/tooltip/tooltip.gif</td><td colspan="1" 
rowspan="1">The url to the tooltip icon</td></tr><tr><td colspan="1" 
rowspan="1">tooltipDelay</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">500</td><td colspan="1" rowspan="1">Tooltip shows up aft
 er the specified timeout (miliseconds). A behavior similar to that of OS based 
tooltips.</td></tr><tr><td colspan="1" rowspan="1">key</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">The name of the property this input field represents.  This will 
auto populate the name, label, and value</td></tr></table></p>
 <h2 id="FormTags-GeneralAttributes">General Attributes</h2>
-<p><table border="1" summary=""><thead><tr><td colspan="1" 
rowspan="1">Attribute</td><td colspan="1" rowspan="1">Theme</td><td colspan="1" 
rowspan="1">Data Types</td><td colspan="1" 
rowspan="1">Description</td></tr></thead><tbody><tr><td colspan="1" 
rowspan="1">cssClass</td><td colspan="1" rowspan="1">simple</td><td colspan="1" 
rowspan="1">String</td><td colspan="1" rowspan="1">define html class 
attribute</td></tr><tr><td colspan="1" rowspan="1">cssStyle</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">define html style attribute</td></tr><tr><td colspan="1" 
rowspan="1">cssClass</td><td colspan="1" rowspan="1">simple</td><td colspan="1" 
rowspan="1">String</td><td colspan="1" rowspan="1">error class 
attribute</td></tr><tr><td colspan="1" rowspan="1">cssStyle</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">error style attribute</td></tr><tr><td colspan="1" rowspan
 ="1">title</td><td colspan="1" rowspan="1">simple</td><td colspan="1" 
rowspan="1">String</td><td colspan="1" rowspan="1">define html title 
attribute</td></tr><tr><td colspan="1" rowspan="1">disabled</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">define html disabled attribute</td></tr><tr><td colspan="1" 
rowspan="1">label</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" 
rowspan="1">String</td><td colspan="1" rowspan="1">define label of form 
element</td></tr><tr><td colspan="1" rowspan="1">labelPosition</td><td 
colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">define label position of form element (top/left), 
default to left</td></tr><tr><td colspan="1" 
rowspan="1">requiredPosition</td><td colspan="1" rowspan="1">xhtml</td><td 
colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define required 
label position of form element (left/right), default to rig
 ht</td></tr><tr><td colspan="1" rowspan="1">errorPosition</td><td colspan="1" 
rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">define error position of form element (top|bottom), default to 
top</td></tr><tr><td colspan="1" rowspan="1">name</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">Form Element's field name mapping</td></tr><tr><td colspan="1" 
rowspan="1">required</td><td colspan="1" rowspan="1">xhtml</td><td colspan="1" 
rowspan="1">Boolean</td><td colspan="1" rowspan="1">add * to label (true to add 
false otherwise)</td></tr><tr><td colspan="1" rowspan="1">tabIndex</td><td 
colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">define html tabindex attribute</td></tr><tr><td 
colspan="1" rowspan="1">value</td><td colspan="1" rowspan="1">simple</td><td 
colspan="1" rowspan="1">Object</td><td colspan="1" rowspan="1">define value of 
form
  element</td></tr></tbody></table></p>
+<p><table border="1" summary=""><thead><tr><td colspan="1" 
rowspan="1">Attribute</td><td colspan="1" rowspan="1">Theme</td><td colspan="1" 
rowspan="1">Data Types</td><td colspan="1" 
rowspan="1">Description</td></tr></thead><tbody><tr><td colspan="1" 
rowspan="1">cssClass</td><td colspan="1" rowspan="1">simple</td><td colspan="1" 
rowspan="1">String</td><td colspan="1" rowspan="1">define html class 
attribute</td></tr><tr><td colspan="1" rowspan="1">cssStyle</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td colspan="1" 
rowspan="1">define html style attribute</td></tr><tr><td colspan="1" 
rowspan="1">cssErrorClass</td><td colspan="1" rowspan="1">simple</td><td 
colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">error class 
attribute</td></tr><tr><td colspan="1" rowspan="1">cssErrorStyle</td><td 
colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">error style attribute</td></tr><tr><td colspan="
 1" rowspan="1">title</td><td colspan="1" rowspan="1">simple</td><td 
colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define html 
title attribute</td></tr><tr><td colspan="1" rowspan="1">disabled</td><td 
colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">define html disabled attribute</td></tr><tr><td 
colspan="1" rowspan="1">label</td><td colspan="1" rowspan="1">xhtml</td><td 
colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define label of 
form element</td></tr><tr><td colspan="1" rowspan="1">labelPosition</td><td 
colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">define label position of form element (top/left), 
default to left</td></tr><tr><td colspan="1" 
rowspan="1">requiredPosition</td><td colspan="1" rowspan="1">xhtml</td><td 
colspan="1" rowspan="1">String</td><td colspan="1" rowspan="1">define required 
label position of form element (left/right), defa
 ult to right</td></tr><tr><td colspan="1" rowspan="1">errorPosition</td><td 
colspan="1" rowspan="1">xhtml</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">define error position of form element (top|bottom), 
default to top</td></tr><tr><td colspan="1" rowspan="1">name</td><td 
colspan="1" rowspan="1">simple</td><td colspan="1" rowspan="1">String</td><td 
colspan="1" rowspan="1">Form Element's field name mapping</td></tr><tr><td 
colspan="1" rowspan="1">required</td><td colspan="1" rowspan="1">xhtml</td><td 
colspan="1" rowspan="1">Boolean</td><td colspan="1" rowspan="1">add * to label 
(true to add false otherwise)</td></tr><tr><td colspan="1" 
rowspan="1">tabIndex</td><td colspan="1" rowspan="1">simple</td><td colspan="1" 
rowspan="1">String</td><td colspan="1" rowspan="1">define html tabindex 
attribute</td></tr><tr><td colspan="1" rowspan="1">value</td><td colspan="1" 
rowspan="1">simple</td><td colspan="1" rowspan="1">Object</td><td colspan="1" 
rowspan="1">define val
 ue of form element</td></tr></tbody></table></p>
 <div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">When some attributes don't apply</p><span class="aui-icon 
aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Some tag attributes may not be 
utilized by all, or any, of the templates. For example, the form tag supports 
the <code>tabindex</code> attribute, but none of the themes render the 
<code>tabindex</code>.</p></div></div><h2 
id="FormTags-Value/NameRelationship">Value/Name Relationship</h2><p>In many of 
the tags (except for the form tag) there is a unique relationship between the 
<code>name</code> and <code>value</code> attributes. The <code>name</code> 
attribute provides the name for the tag, which in turn is used as the control 
attribute when the form is submitted. The value submitted is bound to the 
<code>name</code>. In most cases, the <code>name</code> maps to a simple 
JavaBean property, such as "postalCode"
 . On a submit, the value would be set to the property by calling the 
<code>setPostalCode</code> mutator.</p><p>Likewise, a form control could be 
populated by calling a JavaBean accessor, like <code>getPostalCode</code>. In 
the expression language, we can refer to the JavaBean property by name. An 
expression like "%{postalCode}" would in turn call 
<code>getPostalCode</code>.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>Using Expressions to populate a form for editing</b></div><div 
class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;@s.form action="updateAddress"&gt;
     &lt;@s.textfield label="Postal Code" name="postalCode" 
value="%{postalCode}"/&gt;

Modified: websites/production/struts/content/docs/freemarker.html
==============================================================================
--- websites/production/struts/content/docs/freemarker.html (original)
+++ websites/production/struts/content/docs/freemarker.html Mon Feb 29 19:38:05 
2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884162352 {padding: 0px;}
-div.rbtoc1453884162352 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884162352 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773315678 {padding: 0px;}
+div.rbtoc1456773315678 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773315678 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884162352">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773315678">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FreeMarker-GettingStarted">Getting Started</a></li><li><a shape="rect" 
href="#FreeMarker-Servlet/JSPScopedObjects">Servlet / JSP Scoped Objects</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#FreeMarker-ApplicationScopeAttribute">Application Scope 
Attribute</a></li><li><a shape="rect" 
href="#FreeMarker-SessionScopeAttribute">Session Scope Attribute</a></li><li><a 
shape="rect" href="#FreeMarker-RequestScopeAttribute">Request Scope 
Attribute</a></li><li><a shape="rect" 
href="#FreeMarker-RequestParameter">Request Parameter</a></li><li><a 
shape="rect" href="#FreeMarker-Contextparameter">Context parameter</a></li></ul>
 </li><li><a shape="rect" href="#FreeMarker-TemplateLoading">Template 
Loading</a></li><li><a shape="rect" 
href="#FreeMarker-VariableResolution">Variable Resolution</a></li><li><a 
shape="rect" href="#FreeMarker-TagSupport">Tag Support</a></li><li><a 
shape="rect" href="#FreeMarker-TipsandTricks">Tips and Tricks</a>

Modified: websites/production/struts/content/docs/guides.html
==============================================================================
--- websites/production/struts/content/docs/guides.html (original)
+++ websites/production/struts/content/docs/guides.html Mon Feb 29 19:38:05 2016
@@ -125,7 +125,7 @@ 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> (<strong>&lt; 2.5</strong>)</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 shap
 e="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><strong>&lt; 
2.5</strong><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.htm
 l">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><strong>&lt; 2.5</strong><span>)</span></li><li><a shape="rect" 
href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" 
href="tiles-2-plugin.html">Tiles 2 Plugin</a></li><li><a shape="rect" 
href="tiles-3-plugin.html">Tiles 3 
Plugin</a></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 comp
 lete 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/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> (<strong>&lt; 2.5</strong>)</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 shap
 e="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><strong>&lt; 
2.5</strong><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.htm
 l">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><strong>&lt; 2.5</strong><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> <span>(</span><strong>&lt; 
2.5</strong><span>)</span></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>
 </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-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 shape="rect" 
href="version-notes-2316.html">Version Notes 2.3.16.1</a></li><li><a s
 hape="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="ve
 rsion-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="r
 ect" 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></l
 i><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" rowsp
 an="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" rowsp
 an="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>

Modified: 
websites/production/struts/content/docs/how-to-build-the-portlet-war-for-a-specific-portal-server.html
==============================================================================
--- 
websites/production/struts/content/docs/how-to-build-the-portlet-war-for-a-specific-portal-server.html
 (original)
+++ 
websites/production/struts/content/docs/how-to-build-the-portlet-war-for-a-specific-portal-server.html
 Mon Feb 29 19:38:05 2016
@@ -146,7 +146,7 @@ under the License.
 
 
 <ul><li>Use the <code>container</code> system property to target a specific 
container, e.g. '-Dcontainer=exo'.
-       <ul><li>Several containers are <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=Which%2Bportal%2Bservers%2Bare%2Bsupported&amp;linkCreation=true&amp;fromPageId=14159";>supported</a>.</li><li>Example
 command:
+       <ul><li>Several containers are <a shape="rect" class="unresolved" 
href="#">supported</a>.</li><li>Example command:
                <ul><li><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 ant build-portlet \-Dcontainer=jboss-portal-2.2

Modified: websites/production/struts/content/docs/interceptors.html
==============================================================================
--- websites/production/struts/content/docs/interceptors.html (original)
+++ websites/production/struts/content/docs/interceptors.html Mon Feb 29 
19:38:05 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><div 
class="confluence-information-macro confluence-information-macro-tip"><span 
class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The default Interceptor stack is 
designed to serve the needs of most applications. Most applications will 
<strong>not</strong> need to add Interceptors or change the Interceptor 
stack.</p></div></div><p>Many Actions share common concerns. Some Actions need 
input validated. Other Actions may need a file upload to be pre-processed. 
Another Action might need protection from a double submit. Many Actions need 
drop-down lists and other controls pre-populated before the page 
displays.</p><p>The framework makes it easy to share solutions to these 
concerns using an "Interceptor" strategy. When you request a resource that maps 
to an "action", the framework invokes the Action object. But, before the Action 
is executed, the invocatio
 n can be intercepted by another object. After the Action executes, the 
invocation could be intercepted again. Unsurprisingly, we call these objects 
"Interceptors."</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884069963 {padding: 0px;}
-div.rbtoc1453884069963 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884069963 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773217225 {padding: 0px;}
+div.rbtoc1456773217225 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773217225 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884069963">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773217225">
 <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/docs/json-plugin.html
==============================================================================
--- websites/production/struts/content/docs/json-plugin.html (original)
+++ websites/production/struts/content/docs/json-plugin.html Mon Feb 29 
19:38:05 2016
@@ -150,7 +150,7 @@ under the License.
    "array": [10, 20] 
 }
 </pre>
-</div></div><p>The action must have a "setDoubleValue" method, taking either a 
"float" or a "double" argument (the interceptor will convert the value to the 
right one). There must be a "setNestedBean" whose argument type can be any 
class, that has a "setName" method taking as argument an "String". There must 
be a "setList" method that takes a "List" as argument, that list will contain: 
"A" (String), 10 (Long), 20.20 (Double), Map ("firstName" -&gt; "El Zorro"). 
The "setArray" method can take as parameter either a "List", or any numeric 
array.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>So serialize your objects to JSON 
in javascript see <a shape="rect" class="external-link" 
href="http://json.org/json2.js"; rel="nofollow">json2</a>.</p></div></div><div 
class="confluence-information-macro confluence-infor
 mation-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><code>root</code> attribute must 
be set on the JSONInterceptor when dealing with JSON array.</p></div></div><h2 
id="JSONPlugin-Installation">Installation</h2><p>This plugin can be installed 
by copying the plugin jar into your application's <code>/WEB-INF/lib</code> 
directory. No other files need to be copied or created.</p><p>To use maven, add 
this to your pom:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The action must have a "setDoubleValue" method, taking either a 
"float" or a "double" argument (the interceptor will convert the value to the 
right one). There must be a "setNestedBean" whose argument type can be any 
class, that has a "setName" method taking as argument an "String". There must 
be a "setList" method that takes a "List" as argument, that list will contain: 
"A" (String), 10 (Long), 20.20 (Double), Map ("firstName" -&gt; "El Zorro"). 
The "setArray" method can take as parameter either a "List", or any numeric 
array.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>So serialize your objects to JSON 
in javascript see <a shape="rect" class="external-link" 
href="http://json.org/json2.js"; rel="nofollow">json2</a>.</p></div></div><div 
class="confluence-information-macro confluence-infor
 mation-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><code>root</code> attribute must 
be set on the JSONInterceptor when dealing with JSON array.</p></div></div><div 
class="confluence-information-macro confluence-information-macro-tip"><span 
class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This plugin also provides <a 
shape="rect" href="ajax-validation.html">AJAX 
Validation</a>.</p></div></div><h2 
id="JSONPlugin-Installation">Installation</h2><p>This plugin can be installed 
by copying the plugin jar into your application's <code>/WEB-INF/lib</code> 
directory. No other files need to be copied or created.</p><p>To use maven, add 
this to your pom:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;dependencies&gt;
    ...
    &lt;dependency&gt;
@@ -218,7 +218,7 @@ under the License.
   &lt;param 
name="wrapSuffix"&gt;&lt;![CDATA[&lt;/textarea&gt;&lt;/body&gt;&lt;/html&gt;]]&gt;&lt;/param&gt;
 &lt;/result&gt;
 </pre>
-</div></div><h3 id="JSONPlugin-WrapwithComments">Wrap with Comments</h3><div 
class="confluence-information-macro confluence-information-macro-warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><em>wrapWithComments</em> is 
deprecated from 0.34, use <em>wrapPrefix</em> and <em>wrapSuffix</em> 
instead.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><em>wrapWithComments</em> can turn 
safe JSON text into dangerous text. For example,</p><p><a shape="rect" 
class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=%22*%2F+alert%28%27XSS%27%29%3B+%2F*%22&amp;linkCreation=true&amp;fromPageId=2850922";>"*/
 alert('XSS'); /*"</a></p><p>Thanks to Douglas
  Crockford for the tip!. Consider using <strong>prefix</strong> 
instead.</p></div></div><p>If the serialized JSON is <em>{name: 'El 
Zorro'}</em>. Then the output will be: <em>{}&amp;&amp; ({name: 'El 
Zorro'}</em></p><p>If the "wrapWithComments" (false by default) attribute is 
set to true, the generated JSON is wrapped with comments like:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="JSONPlugin-WrapwithComments">Wrap with Comments</h3><div 
class="confluence-information-macro confluence-information-macro-warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><em>wrapWithComments</em> is 
deprecated from 0.34, use <em>wrapPrefix</em> and <em>wrapSuffix</em> 
instead.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><em>wrapWithComments</em> can turn 
safe JSON text into dangerous text. For example,</p><p><a shape="rect" 
class="unresolved" href="#">"*/ alert('XSS'); /*"</a></p><p>Thanks to Douglas 
Crockford for the tip!. Consider using <strong>prefix</strong> 
instead.</p></div></div><p>If the serialized JSON is <em>{name: 'El 
Zorro'}</em>. Then the output wil
 l be: <em>{}&amp;&amp; ({name: 'El Zorro'}</em></p><p>If the 
"wrapWithComments" (false by default) attribute is set to true, the generated 
JSON is wrapped with comments like:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">/* {
    "doubleVal": 10.10,
    "nestedBean": {

Modified: websites/production/struts/content/docs/localization.html
==============================================================================
--- websites/production/struts/content/docs/localization.html (original)
+++ websites/production/struts/content/docs/localization.html Mon Feb 29 
19:38:05 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884138831 {padding: 0px;}
-div.rbtoc1453884138831 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884138831 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773287474 {padding: 0px;}
+div.rbtoc1456773287474 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773287474 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884138831">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773287474">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Localization-Overview">Overview</a></li><li><a shape="rect" 
href="#Localization-ResourceBundleSearchOrder">Resource Bundle Search Order</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Localization-Defaultaction'sclass">Default action's class</a></li><li><a 
shape="rect" href="#Localization-UsinggetTextfromaTag">Using getText from a 
Tag</a></li><li><a shape="rect" href="#Localization-Usingthetexttag">Using the 
text tag</a></li><li><a shape="rect" href="#Localization-UsingtheI18ntag">Using 
the I18n tag</a></li><li><a shape="rect" 
href="#Localization-UsingtheKeyattributeofUITags">Using the Key attribute of UI 
Tags</a></li></ul>
 </li><li><a shape="rect" href="#Localization-I18nInterceptor">I18n 
Interceptor</a></li><li><a shape="rect" 
href="#Localization-GlobalResources(struts.custom.i18n.resources)instruts.properties">Global
 Resources (struts.custom.i18n.resources) in struts.properties</a></li><li><a 
shape="rect" href="#Localization-FormattingDatesandNumbers">Formatting Dates 
and Numbers</a></li><li><a shape="rect" 
href="#Localization-ComparisonwithStruts1">Comparison with Struts 
1</a></li><li><a shape="rect" href="#Localization-Next:">Next: Type 
Conversion</a></li></ul>


Reply via email to