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;"><bean
type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="mymapper"
class="com.mycompany.myapp.MyActionMapper" />
<constant name="struts.mapper.class" value="mymapper" />
</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&title=ActionMapping&linkCreation=true&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;"><constant name="struts.mapper.class"
value="composite" />
<constant name="struts.mapper.composite" value="struts,restful,restful2"
/>
</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 <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 <code>/docs</code></li></ol><h3
id="BuildingStruts2-Normalrelease-UpdateDraftDocswhenneeded">Update Draft Docs
when needed</h3><p>Checkout <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&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&title=XML&linkCreation=true&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&title=3rd+party+integration&linkCreation=true&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><table></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&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&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><table></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><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&title=why+doesn%27t+the+if+tag+evaluate+params+properly&linkCreation=true&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><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;"><s:form action="doMultipleUploadUsingArray"
method="POST" enctype="multipart/form-data">
+ <s:file label="File (1)" name="upload" />
+ <s:file label="File (2)" name="upload" />
+ <s:file label="FIle (3)" name="upload" />
+ <s:submit cssClass="btn btn-primary"/>
+</s:form></pre>
+</div></div><p><strong>MultipleFileUploadUsingArrayAction.java</strong></p><p> </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("\n\n upload2");
- System.out.println("files:");
+ System.out.println("\n\n upload2");
+ System.out.println("files:");
for (File u : uploads) {
- System.out.println("*** " + u +
"\t" + u.length());
+ System.out.println("*** " + u + "\t" + u.length());
}
- System.out.println("filenames:");
+ System.out.println("filenames:");
for (String n : uploadFileNames) {
- System.out.println("*** " + n);
+ System.out.println("*** " + n);
}
- System.out.println("content types:");
+ System.out.println("content types:");
for (String c : uploadContentTypes) {
- System.out.println("*** " + c);
+ System.out.println("*** " + c);
}
- System.out.println("\n\n");
+ 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> </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;"><s:form action="doMultipleUploadUsingList"
method="POST" enctype="multipart/form-data">
+ <s:file label="File (1)" name="upload" />
+ <s:file label="File (2)" name="upload" />
+ <s:file label="FIle (3)" name="upload" />
+ <s:submit cssClass="btn btn-primary"/>
+</s:form></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<File> uploads = new ArrayList<File>();
private List<String> uploadFileNames = new
ArrayList<String>();
private List<String> uploadContentTypes = new
ArrayList<String>();
-
public List<File> getUpload() {
return this.uploads;
}
-
public void setUpload(List<File> uploads) {
this.uploads = uploads;
}
-
public List<String> getUploadFileName() {
return this.uploadFileNames;
}
-
public void setUploadFileName(List<String> uploadFileNames) {
this.uploadFileNames = uploadFileNames;
}
-
public List<String> getUploadContentType() {
return this.uploadContentTypes;
}
-
public void setUploadContentType(List<String> contentTypes) {
this.uploadContentTypes = contentTypes;
}
-
public String upload() throws Exception {
-
- System.out.println("\n\n upload1");
- System.out.println("files:");
+ System.out.println("\n\n upload1");
+ System.out.println("files:");
for (File u : uploads) {
- System.out.println("*** " + u +
"\t" + u.length());
+ System.out.println("*** " + u + "\t" + u.length());
}
- System.out.println("filenames:");
+ System.out.println("filenames:");
for (String n : uploadFileNames) {
- System.out.println("*** " + n);
+ System.out.println("*** " + n);
}
- System.out.println("content types:");
+ System.out.println("content types:");
for (String c : uploadContentTypes) {
- System.out.println("*** " + c);
+ System.out.println("*** " + c);
}
- System.out.println("\n\n");
+ 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;"><@s.form action="updateAddress">
<@s.textfield label="Postal Code" name="postalCode"
value="%{postalCode}"/>
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>