Author: lukaszlenart
Date: Fri Mar 11 11:02:24 2016
New Revision: 982464

Log:
Updates production

Added:
    websites/production/struts/content/docs/s2-028.html
    websites/production/struts/content/docs/s2-029.html
    websites/production/struts/content/docs/s2-030.html
    websites/production/struts/content/docs/version-notes-2325.html
Modified:
    websites/production/struts/content/docs/action-configuration.html
    websites/production/struts/content/docs/actionmapper.html
    websites/production/struts/content/docs/ajax-and-javascript-recipes.html
    
websites/production/struts/content/docs/building-struts-2-fast-track-release.html
    
websites/production/struts/content/docs/building-struts-2-normal-release.html
    websites/production/struts/content/docs/building-struts-annotations.html
    websites/production/struts/content/docs/building-struts-master.html
    websites/production/struts/content/docs/cdi-plugin.html
    websites/production/struts/content/docs/control-tags.html
    websites/production/struts/content/docs/convention-plugin.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
    websites/production/struts/content/docs/crud-demo-i.html
    websites/production/struts/content/docs/cssxhtml-form-template.html
    websites/production/struts/content/docs/faqs.html
    websites/production/struts/content/docs/file-upload.html
    websites/production/struts/content/docs/form-tags.html
    websites/production/struts/content/docs/freemarker.html
    websites/production/struts/content/docs/guides.html
    
websites/production/struts/content/docs/how-do-we-configure-an-interceptor-to-be-used-with-every-action.html
    
websites/production/struts/content/docs/how-to-build-the-portlet-war-for-a-specific-portal-server.html
    websites/production/struts/content/docs/interceptors.html
    websites/production/struts/content/docs/json-plugin.html
    websites/production/struts/content/docs/localization.html
    websites/production/struts/content/docs/message-store-interceptor.html
    websites/production/struts/content/docs/migration-guide.html
    websites/production/struts/content/docs/objectfactory.html
    websites/production/struts/content/docs/obtain-response.html
    websites/production/struts/content/docs/ognl-basics.html
    websites/production/struts/content/docs/one-time-steps.html
    websites/production/struts/content/docs/portlet-tiles-plugin.html
    websites/production/struts/content/docs/processing-forms.html
    websites/production/struts/content/docs/release-notes-202.html
    websites/production/struts/content/docs/release-plan-200.html
    websites/production/struts/content/docs/rest-plugin.html
    websites/production/struts/content/docs/result-configuration.html
    websites/production/struts/content/docs/result-types.html
    websites/production/struts/content/docs/s2-003.html
    websites/production/struts/content/docs/sample-announcements.html
    websites/production/struts/content/docs/security-bulletins.html
    websites/production/struts/content/docs/security.html
    websites/production/struts/content/docs/struts-2-blank-archetype.html
    websites/production/struts/content/docs/struts-2-maven-archetypes.html
    websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html
    websites/production/struts/content/docs/struts-next.html
    websites/production/struts/content/docs/tiles-3-plugin.html
    websites/production/struts/content/docs/tiles-plugin.html
    websites/production/struts/content/docs/tiles-use.html
    websites/production/struts/content/docs/tutoriallesson06.html
    websites/production/struts/content/docs/type-conversion.html
    websites/production/struts/content/docs/user-guide.html
    websites/production/struts/content/docs/using-freemarker-templates.html
    websites/production/struts/content/docs/validation.html
    
websites/production/struts/content/docs/what-are-some-of-the-frameworks-best-features.html
    websites/production/struts/content/docs/what-is-the-actioncontext.html

Modified: websites/production/struts/content/docs/action-configuration.html
==============================================================================
--- websites/production/struts/content/docs/action-configuration.html (original)
+++ websites/production/struts/content/docs/action-configuration.html Fri Mar 
11 11:02:24 2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>The action mappings are the basic 
"unit-of-work" in the framework. Essentially, the action maps an identifier to 
a handler class. When a request matches the action's name, the framework uses 
the mapping to determine how to process the request.</p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1456773354482 {padding: 0px;}
-div.rbtoc1456773354482 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456773354482 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884195503 {padding: 0px;}
+div.rbtoc1453884195503 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884195503 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773354482">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884195503">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionConfiguration-ActionMappings">Action Mappings</a></li><li><a 
shape="rect" href="#ActionConfiguration-ActionNames">Action 
Names</a></li><li><a shape="rect" 
href="#ActionConfiguration-ActionMethods">Action Methods</a></li><li><a 
shape="rect" href="#ActionConfiguration-WildcardMethod">Wildcard 
Method</a></li><li><a shape="rect" 
href="#ActionConfiguration-DynamicMethodInvocation">Dynamic Method 
Invocation</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionConfiguration-StrictDMI">Strict DMI</a></li><li><a shape="rect" 
href="#ActionConfiguration-StrictMethodInvocation">Strict Method 
Invocation</a></li></ul>
 </li><li><a shape="rect" 
href="#ActionConfiguration-ActionSupportDefault">ActionSupport 
Default</a></li><li><a shape="rect" 
href="#ActionConfiguration-Post-BackDefault">Post-Back Default</a></li><li><a 
shape="rect" href="#ActionConfiguration-ActionDefault">Action Default</a>

Modified: websites/production/struts/content/docs/actionmapper.html
==============================================================================
--- websites/production/struts/content/docs/actionmapper.html (original)
+++ websites/production/struts/content/docs/actionmapper.html Fri Mar 11 
11:02:24 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.rbtoc1456773364672 {padding: 0px;}
-div.rbtoc1456773364672 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456773364672 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884194236 {padding: 0px;}
+div.rbtoc1453884194236 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884194236 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773364672">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884194236">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Description">Description</a></li><li><a shape="rect" 
href="#ActionMapper-DefaultActionMapper">DefaultActionMapper</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Methodprefix">Method prefix</a></li><li><a shape="rect" 
href="#ActionMapper-Actionprefix">Action prefix</a></li></ul>
 </li><li><a shape="rect" href="#ActionMapper-CustomActionMapper">Custom 
ActionMapper</a></li><li><a shape="rect" 
href="#ActionMapper-CompositeActionMapper">CompositeActionMapper</a></li><li><a 
shape="rect" 
href="#ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</a></li><li><a
 shape="rect" 
href="#ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and 
ActionMapping objects</a>
@@ -221,7 +221,7 @@ with something else in struts.xml) will
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;bean 
type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="mymapper" 
class="com.mycompany.myapp.MyActionMapper" /&gt;
 &lt;constant name="struts.mapper.class" value="mymapper" /&gt;
 </pre>
-</div></div><p>Possible uses of the ActionMapper include defining your own, 
cleaner namespaces, such as URLs like <strong>/person/1</strong>, which would 
be similar to a request to <strong>/getPerson.action?personID=1</strong> using 
the DefaultActionMapper.</p><h2 
id="ActionMapper-CompositeActionMapper">CompositeActionMapper</h2><p>A 
composite action mapper that is capable of delegating to a series of <a 
shape="rect" href="actionmapper.html">ActionMapper</a> if the former failed to 
obtained a valid <a shape="rect" class="unresolved" href="#">ActionMapping</a> 
or uri.</p><p>It is configured through <a shape="rect" 
href="strutsxml.html">struts.xml</a>. For example, with the following entries 
in struts.xml</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>Possible uses of the ActionMapper include defining your own, 
cleaner namespaces, such as URLs like <strong>/person/1</strong>, which would 
be similar to a request to <strong>/getPerson.action?personID=1</strong> using 
the DefaultActionMapper.</p><h2 
id="ActionMapper-CompositeActionMapper">CompositeActionMapper</h2><p>A 
composite action mapper that is capable of delegating to a series of <a 
shape="rect" href="actionmapper.html">ActionMapper</a> if the former failed to 
obtained a valid <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=ActionMapping&amp;linkCreation=true&amp;fromPageId=14128";>ActionMapping</a>
 or uri.</p><p>It is configured through <a shape="rect" 
href="strutsxml.html">struts.xml</a>. For example, with the following entries 
in struts.xml</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;constant name="struts.mapper.class" 
value="composite" /&gt;
 &lt;constant name="struts.mapper.composite" value="struts,restful,restful2" 
/&gt;
 </pre>

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

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

Modified: 
websites/production/struts/content/docs/building-struts-2-normal-release.html
==============================================================================
--- 
websites/production/struts/content/docs/building-struts-2-normal-release.html 
(original)
+++ 
websites/production/struts/content/docs/building-struts-2-normal-release.html 
Fri Mar 11 11:02:24 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.rbtoc1456773758648 {padding: 0px;}
-div.rbtoc1456773758648 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1456773758648 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884620028 {padding: 0px;}
+div.rbtoc1453884620028 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884620028 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773758648">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884620028">
 <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 
Fri Mar 11 11:02:24 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.rbtoc1456773757873 {padding: 0px;}
-div.rbtoc1456773757873 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1456773757873 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884615253 {padding: 0px;}
+div.rbtoc1453884615253 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884615253 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1456773757873">
+/*]]>*/</style><div class="toc-macro rbtoc1453884615253">
 <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 Fri Mar 
11 11:02:24 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.rbtoc1456773767967 {padding: 0px;}
-div.rbtoc1456773767967 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1456773767967 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884624327 {padding: 0px;}
+div.rbtoc1453884624327 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884624327 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1456773767967">
+/*]]>*/</style><div class="toc-macro rbtoc1453884624327">
 <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 Fri Mar 11 11:02:24 
2016
@@ -139,11 +139,11 @@ under the License.
     <div class="pagecontent">
         <div class="wiki-content">
             <div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1456773768877 {padding: 0px;}
-div.rbtoc1456773768877 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456773768877 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884633827 {padding: 0px;}
+div.rbtoc1453884633827 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884633827 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1456773768877">
+/*]]>*/</style><div class="toc-macro rbtoc1453884633827">
 <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/control-tags.html
==============================================================================
--- websites/production/struts/content/docs/control-tags.html (original)
+++ websites/production/struts/content/docs/control-tags.html Fri Mar 11 
11:02:24 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="unresolved" 
href="#">Data Tags</a></h2></div>
+<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>
         </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 Fri Mar 11 
11:02:24 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.rbtoc1456773694526 {padding: 0px;}
-div.rbtoc1456773694526 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1456773694526 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884533921 {padding: 0px;}
+div.rbtoc1453884533921 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884533921 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773694526">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884533921">
 <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
 Fri Mar 11 11:02:24 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="unresolved" href="#">XML</a>.</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>
 
 <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 Fri Mar 11 
11:02:24 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="unresolved" href="#">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="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>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 Fri Mar 
11 11:02:24 2016
@@ -128,7 +128,7 @@ under the License.
             <div id="ConfluenceContent">
 
 
-<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>
+<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>
         </div>
 
         

Modified: websites/production/struts/content/docs/faqs.html
==============================================================================
--- websites/production/struts/content/docs/faqs.html (original)
+++ websites/production/struts/content/docs/faqs.html Fri Mar 11 11:02:24 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="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>
+<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>
 
 
 <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 Fri Mar 11 
11:02:24 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.rbtoc1456773683348 {padding: 0px;}
-div.rbtoc1456773683348 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456773683348 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1457693898117 {padding: 0px;}
+div.rbtoc1457693898117 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1457693898117 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773683348">
+/*]]>*/</style></p><div class="toc-macro rbtoc1457693898117">
 <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>
@@ -214,135 +214,104 @@ div.rbtoc1456773683348 li {margin-left:
       }
  }
 </pre>
-</div></div><p>The purpose of each one of these methods is described in the 
table below. Notice that if you have multiple file form elements with different 
names you would be required to have another corresponding set of these methods 
for each file uploaded.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Signature</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setX(File file)</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The file that contains the content of the 
uploaded file. This is a temporary file and <code>file.getName()</code> will 
not return the original name of the file</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setXContentType(String 
contentType)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
mime type of the uploaded file</p></td></tr><tr><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>setXFileName(String 
fileName)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
actual file name of the uploaded file (not the HTML 
name)</p></td></tr></tbody></table></div><h2 
id="FileUpload-UploadingMultipleFiles">Uploading Multiple Files</h2><p>As 
mentioned in the previous section one technique for uploading multiple files 
would be to simply have multiple form input elements of type file all with 
different names. This would require a number of setter methods that was equal 
to 3 times the number of files being uploaded. Another option is to use Arrays 
or java.util.Lists. The following examples are taken from the Showcase example 
application that is part sample applications you can download at <a 
shape="rect" class="external-link" 
href="http://struts.apache.org/download.cgi";>http://struts.apache.org/download.cgi</a>.
 For the Action mapping details see <code>struts-fileupload.xml</code> in the 
sample application download.</
 p><h3 id="FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple 
Files using Arrays</h3><p><strong>multipleUploadUsingArray.jsp</strong> Notice 
all file input types have the same name.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><strong>MultipleFileUploadUsingArrayAction.java</strong><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-package org.apache.struts2.showcase.fileupload;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-import java.io.File;
-
-/**
- * Showcase action - mutiple file upload using array.
- *
- * @version $Date$ $Id$
- */
-public class MultipleFileUploadUsingArrayAction extends ActionSupport {
-
+</div></div><p>The purpose of each one of these methods is described in the 
table below. Notice that if you have multiple file form elements with different 
names you would be required to have another corresponding set of these methods 
for each file uploaded.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Signature</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setX(File file)</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The file that contains the content of the 
uploaded file. This is a temporary file and <code>file.getName()</code> will 
not return the original name of the file</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setXContentType(String 
contentType)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
mime type of the uploaded file</p></td></tr><tr><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>setXFileName(String 
fileName)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 
actual file name of the uploaded file (not the HTML 
name)</p></td></tr></tbody></table></div><h2 
id="FileUpload-UploadingMultipleFiles">Uploading Multiple Files</h2><p>As 
mentioned in the previous section one technique for uploading multiple files 
would be to simply have multiple form input elements of type file all with 
different names. This would require a number of setter methods that was equal 
to 3 times the number of files being uploaded. Another option is to use Arrays 
or java.util.Lists. The following examples are taken from the Showcase example 
application that is part sample applications you can download at <a 
shape="rect" class="external-link" 
href="http://struts.apache.org/download.cgi";>http://struts.apache.org/download.cgi</a>.
 For the Action mapping details see <code>struts-fileupload.xml</code> in the 
sample application download.</
 p><h3 id="FileUpload-UploadingMultipleFilesusingArrays">Uploading Multiple 
Files using Arrays</h3><p><strong>multipleUploadUsingArray.jsp</strong> Notice 
all file input types have the same name.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: html; gutter: false; theme: Default" 
style="font-size:12px;">&lt;s:form action="doMultipleUploadUsingArray" 
method="POST" enctype="multipart/form-data"&gt;
+  &lt;s:file label="File (1)" name="upload" /&gt;
+  &lt;s:file label="File (2)" name="upload" /&gt;
+  &lt;s:file label="FIle (3)" name="upload" /&gt;
+  &lt;s:submit cssClass="btn btn-primary"/&gt;
+&lt;/s:form&gt;</pre>
+</div></div><p><strong>MultipleFileUploadUsingArrayAction.java</strong></p><p>&#160;</p><p><strong><br
 clear="none"></strong></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;">public class MultipleFileUploadUsingArrayAction extends 
ActionSupport {
        private File[] uploads;
        private String[] uploadFileNames;
        private String[] uploadContentTypes;
 
-
        public String upload() throws Exception {
-               System.out.println(&quot;\n\n upload2&quot;);
-               System.out.println(&quot;files:&quot;);
+               System.out.println("\n\n upload2");
+               System.out.println("files:");
                for (File u : uploads) {
-                       System.out.println(&quot;*** &quot; + u + 
&quot;\t&quot; + u.length());
+                       System.out.println("*** " + u + "\t" + u.length());
                }
-               System.out.println(&quot;filenames:&quot;);
+               System.out.println("filenames:");
                for (String n : uploadFileNames) {
-                       System.out.println(&quot;*** &quot; + n);
+                       System.out.println("*** " + n);
                }
-               System.out.println(&quot;content types:&quot;);
+               System.out.println("content types:");
                for (String c : uploadContentTypes) {
-                       System.out.println(&quot;*** &quot; + c);
+                       System.out.println("*** " + c);
                }
-               System.out.println(&quot;\n\n&quot;);
+               System.out.println("\n\n");
                return SUCCESS;
        }
-
        public File[] getUpload() {
                return this.uploads;
        }
-
        public void setUpload(File[] upload) {
                this.uploads = upload;
        }
-
        public String[] getUploadFileName() {
                return this.uploadFileNames;
        }
-
        public void setUploadFileName(String[] uploadFileName) {
                this.uploadFileNames = uploadFileName;
        }
-
        public String[] getUploadContentType() {
                return this.uploadContentTypes;
        }
-
        public void setUploadContentType(String[] uploadContentType) {
                this.uploadContentTypes = uploadContentType;
        }
-}
-]]></script>
-</div></div><h3 id="FileUpload-UploadingMultipleFilesusingLists">Uploading 
Multiple Files using Lists</h3><p><strong>multipleUploadUsingList.jsp</strong> 
Notice all file input types have the same name.</p><div class="error"><span 
class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><strong>MultipleFileUploadUsingListAction.java</strong><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-package org.apache.struts2.showcase.fileupload;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Showcase action - multiple file upload using List
- *
- * @version $Date$ $Id$
- */
-public class MultipleFileUploadUsingListAction extends ActionSupport {
-
+}</pre>
+</div></div><p>&#160;</p><h3 
id="FileUpload-UploadingMultipleFilesusingLists">Uploading Multiple Files using 
Lists</h3><p><strong>multipleUploadUsingList.jsp</strong> Notice all file input 
types have the same name.</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;s:form action="doMultipleUploadUsingList" 
method="POST" enctype="multipart/form-data"&gt;
+  &lt;s:file label="File (1)" name="upload" /&gt;
+  &lt;s:file label="File (2)" name="upload" /&gt;
+  &lt;s:file label="FIle (3)" name="upload" /&gt;
+  &lt;s:submit cssClass="btn btn-primary"/&gt;
+&lt;/s:form&gt;</pre>
+</div></div><p><strong>MultipleFileUploadUsingListAction.java</strong></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;">public class MultipleFileUploadUsingListAction extends 
ActionSupport {
        private List&lt;File&gt; uploads = new ArrayList&lt;File&gt;();
        private List&lt;String&gt; uploadFileNames = new 
ArrayList&lt;String&gt;();
        private List&lt;String&gt; uploadContentTypes = new 
ArrayList&lt;String&gt;();
 
-
        public List&lt;File&gt; getUpload() {
                return this.uploads;
        }
-
        public void setUpload(List&lt;File&gt; uploads) {
                this.uploads = uploads;
        }
-
        public List&lt;String&gt; getUploadFileName() {
                return this.uploadFileNames;
        }
-
        public void setUploadFileName(List&lt;String&gt; uploadFileNames) {
                this.uploadFileNames = uploadFileNames;
        }
-
        public List&lt;String&gt; getUploadContentType() {
                return this.uploadContentTypes;
        }
-
        public void setUploadContentType(List&lt;String&gt; contentTypes) {
                this.uploadContentTypes = contentTypes;
        }
-
        public String upload() throws Exception {
-
-               System.out.println(&quot;\n\n upload1&quot;);
-               System.out.println(&quot;files:&quot;);
+               System.out.println("\n\n upload1");
+               System.out.println("files:");
                for (File u : uploads) {
-                       System.out.println(&quot;*** &quot; + u + 
&quot;\t&quot; + u.length());
+                       System.out.println("*** " + u + "\t" + u.length());
                }
-               System.out.println(&quot;filenames:&quot;);
+               System.out.println("filenames:");
                for (String n : uploadFileNames) {
-                       System.out.println(&quot;*** &quot; + n);
+                       System.out.println("*** " + n);
                }
-               System.out.println(&quot;content types:&quot;);
+               System.out.println("content types:");
                for (String c : uploadContentTypes) {
-                       System.out.println(&quot;*** &quot; + c);
+                       System.out.println("*** " + c);
                }
-               System.out.println(&quot;\n\n&quot;);
+               System.out.println("\n\n");
                return SUCCESS;
        }
-}
-]]></script>
+}</pre>
 </div></div><h2 id="FileUpload-AdvancedConfiguration">Advanced 
Configuration</h2><p>The Struts 2 <code>default.properties</code> file defines 
several settings that affect the behavior of file uploading. You may find in 
necessary to change these values. The names and default values are:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="brush: plain; gutter: false; theme: Default" 
style="font-size:12px;">struts.multipart.parser=jakarta
 struts.multipart.saveDir=

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 Fri Mar 11 11:02:24 
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">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>
+<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>
 <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 Fri Mar 11 11:02:24 
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.rbtoc1456773315678 {padding: 0px;}
-div.rbtoc1456773315678 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456773315678 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884162352 {padding: 0px;}
+div.rbtoc1453884162352 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884162352 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773315678">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884162352">
 <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>


Reply via email to