You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by rg...@apache.org on 2016/02/29 20:38:06 UTC

svn commit: r981415 [2/4] - in /websites/production/struts/content: ./ docs/ docs/ajax-validation.data/

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>