Modified: websites/production/struts/content/docs/message-store-interceptor.html
==============================================================================
--- websites/production/struts/content/docs/message-store-interceptor.html
(original)
+++ websites/production/struts/content/docs/message-store-interceptor.html Mon
Feb 29 19:38:05 2016
@@ -138,114 +138,34 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><p>
-An interceptor to store a ValidationAware action's messages / errors and field
errors into
-HTTP Session, such that it will be retrievable at a later stage. This allows
the action's message /
-errors and field errors to be available longer that just the particular HTTP
request.
-</p>
-
-<p></p><p>
-If no session exists, nothing will be stored and can be retrieved later. In
other terms,
-the application is responsible to open the session.
-</p>
-
-<p></p><p>
-In the 'STORE' mode, the interceptor will store the ValidationAware action's
message / errors
-and field errors into HTTP session.
-</p>
-
-<p></p><p>
-In the 'RETRIEVE' mode, the interceptor will retrieve the stored action's
message / errors and field
-errors and put them back into the ValidationAware action.
-</p>
-
-<p></p><p>
-In the 'AUTOMATIC' mode, the interceptor will always retrieve the stored
action's message / errors
-and field errors and put them back into the ValidationAware action, and after
Action execution,
-if the com.opensymphony.xwork2.Result is an instance of ServletRedirectResult,
the action's message / errors
-and field errors into automatically be stored in the HTTP session..
-</p>
-
-<p></p><p>
-The interceptor does nothing in the 'NONE' mode, which is the default.
-</p>
-
-<p></p><p>
-The operation mode could be switched using:<br clear="none">
-1] Setting the interceptor parameter eg.
-</p>
-<pre>
- <action name="submitApplication" ...>
- <interceptor-ref name="store">
- <param name="operationMode">STORE</param>
- </interceptor-ref>
- <interceptor-ref name="defaultStack" />
- ....
- </action>
-</pre>
-
-<p></p><p>
-2] Through request parameter (allowRequestParameterSwitch must be 'true' which
is the default)
-</p>
-
-<p></p><pre>
- // the request will have the operation mode in 'STORE'
- http://localhost:8080/context/submitApplication.action?operationMode=STORE
-</pre>
-
-
-<h2 id="MessageStoreInterceptor-Parameters">Parameters</h2>
-
-
-<p></p><ul><li>allowRequestParameterSwitch - To enable request parameter that
could switch the operation mode
- of this interceptor.
</li><li>requestParameterSwitch - The request parameter that will indicate what
mode this
- interceptor is in. </li><li>operationMode -
The operation mode this interceptor should be in
- (either 'STORE', 'RETRIEVE', 'AUTOMATIC', or 'NONE').
'NONE' being the default.</li></ul>
-
-
-<h2 id="MessageStoreInterceptor-ExtendingtheInterceptor">Extending the
Interceptor</h2>
-
-<p></p><p>
-The following method could be overridden:
-</p>
-
-<p></p><ul><li>getRequestOperationMode - get the operation mode of this
interceptor based on the request parameters</li><li>mergeCollection - merge two
collections</li><li>mergeMap - merge two map</li></ul>
-
-
-<h2 id="MessageStoreInterceptor-Examples">Examples</h2>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
-
-<action name="submitApplication" ....>
- <interceptor-ref name="store">
- <param name="operationMode">aSTORE</param>
- </interceptor-ref>
- <interceptor-ref name="defaultStack" />
- <result name="input"
type="redirect">aapplicationFailed.action</result>
- <result
type="dispatcher">applicationSuccess.jsp</result>
+ <div id="ConfluenceContent"><p>An interceptor to store a <a
shape="rect" class="unresolved" href="#">ValidationAware</a> action's
messages / errors and field errors into HTTP Session, such that it will be
retrievable at a later stage. This allows the action's message / errors
and field errors to be available longer that just the particular HTTP
request.</p><p>If no session exists, nothing will be stored and can be
retrieved later. In other terms, the application is responsible to open
the session.</p><p>In the <strong>STORE</strong> mode, the interceptor
will store the <a shape="rect" class="unresolved"
href="#">ValidationAware</a> action's message / errors and field
errors into HTTP session.</p><p>In the <strong>RETRIEVE</strong> mode, the
interceptor will retrieve the stored action's message / errors and
field errors and put them back into the <a shape="rect" class="unresolved"
href="#">ValidationAware</a> action.</p><p
>In the <strong>AUTOMATIC</strong> mode, the interceptor will always
>retrieve the stored action's message / errors and field errors and put
>them back into the [ValidationAware] action, and after Action
>execution, if the <a shape="rect" class="unresolved"
>href="#">Result</a> is an instance of <a shape="rect" class="unresolved"
>href="#">ServletRedirectResult</a>, the action's message / errors and
>field errors into automatically be stored in the HTTP session..</p><p>The
>interceptor does nothing in the <strong>NONE</strong> mode, which is the
>default.</p><p>The operation mode could be switched
>using:</p><ol><li><p>Setting the interceptor parameter eg.</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;"><action name="submitApplication" ...>
+ <interceptor-ref name="store"/>
+ <param name="operationMode">STORE</param>
+ </interceptor-ref>
+ <interceptor-ref name="defaultStack" />
+ ....
+</action></pre>
+</div></div></li><li><p>Through request parameter
<code>allowRequestParameterSwitch</code> must be 'true' which is the
default</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;">the request will have the operation mode in 'STORE'
+http://localhost:8080/context/submitApplication.action?operationMode=STORE</pre>
+</div></div></li></ol><h2
id="MessageStoreInterceptor-Parameters">Parameters</h2><ul><li><code>allowRequestParameterSwitch</code> -
To enable request parameter that could switch the operation mode of this
interceptor.</li><li><code>requestParameterSwitch</code> - The request
parameter that will indicate what mode this interceptor is
in.</li><li><code>operationMode</code> - The operation mode this
interceptor should be in (either <strong>STORE</strong>,
<strong>RETRIEVE</strong>, <strong>AUTOMATIC</strong>, or
<strong>NONE</strong>). <strong>NONE </strong>being the
default.</li></ul><h2
id="MessageStoreInterceptor-ExtendingtheInterceptor">Extending the
Interceptor</h2><p>There is no known extensions.</p><h2
id="MessageStoreInterceptor-Examples">Examples</h2><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;"><action name="submitApplication" ....>
+ <interceptor-ref name="store">
+ <param name="operationMode">STORE</param>
+ </interceptor-ref>
+ <interceptor-ref name="defaultStack" />
+ <result name="input"
type="redirectAction">applicationFailed</result>
+ <result type="dispatcher">applicationSuccess.jsp</result>
</action>
-<action name="applicationFailed" ....>
- <interceptor-ref name="store">
- <param name="operationMode">RETRIEVE</param>
- </interceptor-ref>
- <result>applicationFailed.jsp</result>
-</action>
-
-]]></script>
-</div></div>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
-<p>
-With the example above, 'submitApplication.action' will have the
action messages / errors / field errors stored
-in the HTTP Session. Later when needed, (in this case, when
'applicationFailed.action' is fired, it
-will get the action messages / errors / field errors stored in the HTTP
Session and put them back into
-the action.
-</p>
-]]></script>
-</div></div></div>
+<action name="applicationFailed" ....>
+ <interceptor-ref name="store">
+ <param name="operationMode">RETRIEVE</param>
+ </interceptor-ref>
+ <result>applicationFailed.jsp</result>
+</action></pre>
+</div></div><p>With the example above,
<strong>submitApplication.action</strong> will have the action messages /
errors / field errors stored in the HTTP Session. Later when needed, (in
this case, when <strong>applicationFailed.action</strong> is fired,
it will get the action messages / errors / field errors stored in the HTTP
Session and put them back into the action.</p><p> </p></div>
</div>
Modified: websites/production/struts/content/docs/objectfactory.html
==============================================================================
--- websites/production/struts/content/docs/objectfactory.html (original)
+++ websites/production/struts/content/docs/objectfactory.html Mon Feb 29
19:38:05 2016
@@ -146,7 +146,7 @@ under the License.
.....
}
</pre>
-</div></div><h3 id="ObjectFactory-Definededicatedfactory">Define dedicated
factory</h3><p>If you want to just extend one part of ObjectFactory, ie. to
change how <a shape="rect" href="result-types.html">Result Types</a> are build,
you can implement <code>ResultFactory</code> interface and register it with
dedicated name, see <a shape="rect" href="plugins.html">Extension Points</a>
for more details. Original ObjectFactory will use these dedicated factories to
do the work. It's already done this way - the original functionality of
ObjectFactory was extracted to separated classes which implements the
interfaces below. Check the source of ObjectFactory to see more details. All
these factories are available as from version 2.3.16.</p><p>List of Factory
interfaces:</p><ul class="alternate"><li><code>ResultFactory</code> - dedicated
interfaces used by <a shape="rect" href="objectfactory.html">ObjectFactory</a>
to create <a shape="rect" href="result-types.html">Result Types</a><ul class="al
ternate"><li><code>StrutsResultFactory</code> it's internal implementation
which checks if Result implements <code>ParamNameAwareResult</code> interface
to restrict names of parameters set on the instance of Result, see <a
shape="rect" href="result-types.html">Result Types</a> for more
info.</li></ul></li><li><code>ActionFactory</code> - dedicated interface used
by <a shape="rect" href="objectfactory.html">ObjectFactory</a> to
actions</li><li><code>InterceptorFactory</code> - dedicated interface used by
<a shape="rect" href="objectfactory.html">ObjectFactory</a> to create
interceptors</li><li><code>ValidatorFactory</code> - dedicated interface used
by <a shape="rect" href="objectfactory.html">ObjectFactory</a> to create
validators</li><li><code>ConverterFactory</code> - dedicated interface used by
<a shape="rect" href="objectfactory.html">ObjectFactory</a> to create instances
of <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spac
eKey=WW&title=TypeConverter&linkCreation=true&fromPageId=27470">TypeConverter</a></li><li><code>UnknownHandlerFactory</code>
- dedicated interfaces used by <a shape="rect"
href="objectfactory.html">ObjectFactory</a> to create instances of <a
shape="rect" href="unknown-handlers.html">Unknown Handlers</a> (as from
version 2.3.18)</li></ul><h2 id="ObjectFactory-Next:">Next: <a shape="rect"
href="actionmapper.html">ActionMapper</a></h2></div>
+</div></div><h3 id="ObjectFactory-Definededicatedfactory">Define dedicated
factory</h3><p>If you want to just extend one part of ObjectFactory, ie. to
change how <a shape="rect" href="result-types.html">Result Types</a> are build,
you can implement <code>ResultFactory</code> interface and register it with
dedicated name, see <a shape="rect" href="plugins.html">Extension Points</a>
for more details. Original ObjectFactory will use these dedicated factories to
do the work. It's already done this way - the original functionality of
ObjectFactory was extracted to separated classes which implements the
interfaces below. Check the source of ObjectFactory to see more details. All
these factories are available as from version 2.3.16.</p><p>List of Factory
interfaces:</p><ul class="alternate"><li><code>ResultFactory</code> - dedicated
interfaces used by <a shape="rect" href="objectfactory.html">ObjectFactory</a>
to create <a shape="rect" href="result-types.html">Result Types</a><ul class="al
ternate"><li><code>StrutsResultFactory</code> it's internal implementation
which checks if Result implements <code>ParamNameAwareResult</code> interface
to restrict names of parameters set on the instance of Result, see <a
shape="rect" href="result-types.html">Result Types</a> for more
info.</li></ul></li><li><code>ActionFactory</code> - dedicated interface used
by <a shape="rect" href="objectfactory.html">ObjectFactory</a> to
actions</li><li><code>InterceptorFactory</code> - dedicated interface used by
<a shape="rect" href="objectfactory.html">ObjectFactory</a> to create
interceptors</li><li><code>ValidatorFactory</code> - dedicated interface used
by <a shape="rect" href="objectfactory.html">ObjectFactory</a> to create
validators</li><li><code>ConverterFactory</code> - dedicated interface used by
<a shape="rect" href="objectfactory.html">ObjectFactory</a> to create instances
of <a shape="rect" class="unresolved"
href="#">TypeConverter</a></li><li><code>UnknownHandlerFactory</code>
- dedicated interfaces used by <a shape="rect"
href="objectfactory.html">ObjectFactory</a> to create instances of <a
shape="rect" href="unknown-handlers.html">Unknown Handlers</a> (as from
version 2.3.18)</li></ul><h2 id="ObjectFactory-Next:">Next: <a shape="rect"
href="actionmapper.html">ActionMapper</a></h2></div>
</div>
Modified: websites/production/struts/content/docs/obtain-response.html
==============================================================================
--- websites/production/struts/content/docs/obtain-response.html (original)
+++ websites/production/struts/content/docs/obtain-response.html Mon Feb 29
19:38:05 2016
@@ -146,7 +146,7 @@ under the License.
<h2 id="ObtainResponse-MainSuccessScenario(MSS)">Main Success Scenario
(MSS)</h2>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Step </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Action </p></th></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p> 1 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> Client submits request to web server.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 2
</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Web server
transfers request to container, and container transfers request to framework's
dispatcher. </p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p> 3 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> Dispatcher consults the <a shape="rect"
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=mappings&linkCreation=true&fromPageId=29365">mappings</a>
to select the appropriate <a shape="rect" hre
f="execute-action.html">action</a> and creates a <a shape="rect"
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=context&linkCreation=true&fromPageId=29365">context</a>
for the request. </p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p> 4 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> Dispatcher creates and invokes a <a shape="rect"
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=proxy&linkCreation=true&fromPageId=29365">proxy</a>
to execute the action and its <a shape="rect"
href="interceptors.html">interceptors</a>. </p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p> 5 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> The proxy manages the action pre-process, the
procedess, and the post-process. </p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p> 6 </p></th><td cols
pan="1" rowspan="1" class="confluenceTd"><p> The invocation calls each
interceptor in turn before executing the action. </p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> 7 </p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p> Each interceptor affects the request as
appropriate. </p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p> 8 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> The action handles the transaction corresponding to
the request. </p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p> 9 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> The action returns a code indicating the appropriate
<a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=result&linkCreation=true&fromPageId=29365">result</a>.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 0
</p></th><td colspan="1" rowspan="1" class
="confluenceTd"><p> The invocation executes the result. </p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> A </p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p> The result generates the response or
transfers to a resource that will render the response.
</p></td></tr></tbody></table></div>
+<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> Step </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Action </p></th></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p> 1 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> Client submits request to web server.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 2
</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Web server
transfers request to container, and container transfers request to framework's
dispatcher. </p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p> 3 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> Dispatcher consults the <a shape="rect"
class="unresolved" href="#">mappings</a> to select the appropriate <a
shape="rect" href="execute-action.html">action</a> and creates a <a
shape="rect" class="unresolved" href="#">context</a> for the request. </p></td><
/tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 4 </p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p> Dispatcher creates and invokes
a <a shape="rect" class="unresolved" href="#">proxy</a> to execute the action
and its <a shape="rect" href="interceptors.html">interceptors</a>.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 5
</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> The proxy manages
the action pre-process, the procedess, and the post-process.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 6
</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> The invocation
calls each interceptor in turn before executing the action.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> 7
</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> Each interceptor
affects the request as appropriate. </p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p> 8 </p></th><t
d colspan="1" rowspan="1" class="confluenceTd"><p> The action handles the
transaction corresponding to the request. </p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p> 9 </p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p> The action returns a code indicating the appropriate
<a shape="rect" class="unresolved" href="#">result</a>. </p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> 0 </p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p> The invocation executes the result.
</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> A
</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> The result
generates the response or transfers to a resource that will render the
response. </p></td></tr></tbody></table></div>
<h2 id="ObtainResponse-Extensions">Extensions</h2>
Modified: websites/production/struts/content/docs/ognl-basics.html
==============================================================================
--- websites/production/struts/content/docs/ognl-basics.html (original)
+++ websites/production/struts/content/docs/ognl-basics.html Mon Feb 29
19:38:05 2016
@@ -152,7 +152,7 @@ name // call to animal.getName() b
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">[0].name // call to animal.getName()
[1].name // call to person.getName()
</pre>
-</div></div><p>With expression like [0] ... [3] etc. Struts 2 will cut the
stack and still return back a CompoundRoot object. To get the top of that
particular stack cut, use <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=0&linkCreation=true&fromPageId=14000">0</a>.top</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>ognl expression</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>[0].top</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>would get the top of the stack cut starting
from element 0 in the stack (similar to top in this case)</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>[1].top</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>would get the top of the stack cut starting
from element 1
in the stack</p></td></tr></tbody></table></div><h2
id="OGNLBasics-Accessingstaticproperties">Accessing static
properties</h2><p>OGNL supports accessing static properties as well as static
methods.</p><p>By default, Struts 2 is configured to disallow this--to enable
OGNL's static member support you must set the
<code>struts.ognl.allowStaticMethodAccess</code> constant to <code>true</code>
via any of the <a shape="rect" href="constant-configuration.html">Constant
Configuration</a> methods.</p><p>OGNL's static access looks like this:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+</div></div><p>With expression like [0] ... [3] etc. Struts 2 will cut the
stack and still return back a CompoundRoot object. To get the top of that
particular stack cut, use <a shape="rect" class="unresolved"
href="#">0</a>.top</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>ognl expression</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>[0].top</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>would get the top of the stack cut starting from
element 0 in the stack (similar to top in this case)</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>[1].top</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>would get the top of the stack cut starting
from element 1 in the stack</p></td></tr></tbody></table></div><h2
id="OGNLBasics-Accessingstaticproperties">Accessing static properties</h
2><p>OGNL supports accessing static properties as well as static
methods.</p><p>By default, Struts 2 is configured to disallow this--to enable
OGNL's static member support you must set the
<code>struts.ognl.allowStaticMethodAccess</code> constant to <code>true</code>
via any of the <a shape="rect" href="constant-configuration.html">Constant
Configuration</a> methods.</p><p>OGNL's static access looks like this:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre class="brush: text; gutter: false; theme: Default"
style="font-size:12px;">@some.package.ClassName@FOO_PROPERTY
@some.package.ClassName@someMethod()
</pre>
Modified: websites/production/struts/content/docs/one-time-steps.html
==============================================================================
--- websites/production/struts/content/docs/one-time-steps.html (original)
+++ websites/production/struts/content/docs/one-time-steps.html Mon Feb 29
19:38:05 2016
@@ -140,11 +140,11 @@ under the License.
<div class="wiki-content">
<div id="ConfluenceContent"><h1
id="Onetimesteps-Content">Content</h1>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884610727 {padding: 0px;}
-div.rbtoc1453884610727 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1453884610727 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773754359 {padding: 0px;}
+div.rbtoc1456773754359 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1456773754359 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884610727">
+/*]]>*/</style><div class="toc-macro rbtoc1456773754359">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect" href="#Onetimesteps-Content">Content</a>
<ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a
shape="rect" href="#Onetimesteps-Keysandconfiguration">Keys and
configuration</a>
<ul class="toc-indentation"><li><span class="TOCOutline">1.1.1</span> <a
shape="rect" href="#Onetimesteps-CreateandinstallaSSHkey">Create and install a
SSH key</a></li><li><span class="TOCOutline">1.1.2</span> <a shape="rect"
href="#Onetimesteps-CreateaPGPkey">Create a PGP key</a></li><li><span
class="TOCOutline">1.1.3</span> <a shape="rect"
href="#Onetimesteps-UpdateMavensettingsforourservers">Update Maven settings for
our servers</a></li><li><span class="TOCOutline">1.1.4</span> <a shape="rect"
href="#Onetimesteps-IncreaseMemorySettingsforMaven">Increase Memory Settings
for Maven</a></li></ul>
Modified: websites/production/struts/content/docs/plugin-developers-guide.html
==============================================================================
--- websites/production/struts/content/docs/plugin-developers-guide.html
(original)
+++ websites/production/struts/content/docs/plugin-developers-guide.html Mon
Feb 29 19:38:05 2016
@@ -125,7 +125,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent">Apache Struts 2 provides a simple <a
shape="rect" href="plugins.html">plugin architecture</a> so that developers can
extend the framework just by adding a JAR to the application's classpath. Since
plugins are contained in a JAR, they are easy to share with others. Several
plugins are bundled with the framework, and others are available from
third-party sources.<ul><li><a shape="rect"
href="plugins.html">Plugins</a></li><li><a shape="rect"
href="extending-an-application-with-custom-plugins.html">Extending an
Application with Custom Plugins</a></li></ul><h3
id="PluginDevelopersGuide-BundledPlugins">Bundled Plugins</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1"
rowspan="1" class="confluenceTd"><ul><li><a shape="rect"
href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a
shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a>
(2.3.1+)</li><li><a shape="rect" href="codebehind-plu
gin.html">Codebehind Plugin</a> (<strong>< 2.5</strong>)</li><li><a
shape="rect" href="config-browser-plugin.html">Config Browser
Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention
Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR
Plugin</a></li><li><a shape="rect" href="embedded-jsp-plugin.html">Embedded JSP
Plugin</a> (2.1.7+)</li><li><a shape="rect"
href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a
shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a>
(2.3.21+)</li><li><a shape="rect"
href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a
shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a
shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span><strong><
2.5</strong><span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON
Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit
Plugin</a></li></ul></td><td c
olspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect"
href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect"
href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect"
href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect"
href="portlet-plugin.html">Portlet Plugin</a></li><li><a shape="rect"
href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a
shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a
shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a
shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a
shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a
shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a>
<span>(</span><strong>< 2.5</strong><span>)</span></li><li><a shape="rect"
href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect"
href="tiles-2-plugin.html">Tiles 2 Plugin</a></li><li><a shape="rect" hre
f="tiles-3-plugin.html">Tiles 3
Plugin</a></li></ul></td></tr></tbody></table></div><p><img class="emoticon
emoticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and
third-party plugins, visit the <a shape="rect" class="external-link"
href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2
id="PluginDevelopersGuide-Next:">Next: <a shape="rect"
href="architects-guide.html">Architects Guide</a></h2></div>
+ <div id="ConfluenceContent">Apache Struts 2 provides a simple <a
shape="rect" href="plugins.html">plugin architecture</a> so that developers can
extend the framework just by adding a JAR to the application's classpath. Since
plugins are contained in a JAR, they are easy to share with others. Several
plugins are bundled with the framework, and others are available from
third-party sources.<ul><li><a shape="rect"
href="plugins.html">Plugins</a></li><li><a shape="rect"
href="extending-an-application-with-custom-plugins.html">Extending an
Application with Custom Plugins</a></li></ul><h3
id="PluginDevelopersGuide-BundledPlugins">Bundled Plugins</h3><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1"
rowspan="1" class="confluenceTd"><ul><li><a shape="rect"
href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a
shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a>
(2.3.1+)</li><li><a shape="rect" href="codebehind-plu
gin.html">Codebehind Plugin</a> (<strong>< 2.5</strong>)</li><li><a
shape="rect" href="config-browser-plugin.html">Config Browser
Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention
Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR
Plugin</a></li><li><a shape="rect" href="embedded-jsp-plugin.html">Embedded JSP
Plugin</a> (2.1.7+)</li><li><a shape="rect"
href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a
shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a>
(2.3.21+)</li><li><a shape="rect"
href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a
shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a
shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span><strong><
2.5</strong><span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON
Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit
Plugin</a></li></ul></td><td c
olspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect"
href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect"
href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect"
href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect"
href="portlet-plugin.html">Portlet Plugin</a></li><li><a shape="rect"
href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a
shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a
shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a
shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a
shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a
shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a>
<span>(</span><strong>< 2.5</strong><span>)</span></li><li><a shape="rect"
href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect"
href="tiles-plugin.html">Tiles Plugin</a></li><li><a shape="rect" href="t
iles-3-plugin.html">Tiles 3 Plugin</a> <span>(</span><strong><
2.5</strong><span>)</span></li></ul></td></tr></tbody></table></div><p><img
class="emoticon emoticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and
third-party plugins, visit the <a shape="rect" class="external-link"
href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2
id="PluginDevelopersGuide-Next:">Next: <a shape="rect"
href="architects-guide.html">Architects Guide</a></h2></div>
</div>
<div class="tabletitle">
Modified: websites/production/struts/content/docs/portlet-tiles-plugin.html
==============================================================================
--- websites/production/struts/content/docs/portlet-tiles-plugin.html (original)
+++ websites/production/struts/content/docs/portlet-tiles-plugin.html Mon Feb
29 19:38:05 2016
@@ -157,7 +157,7 @@ under the License.
<version>${struts2.version}</version>
</dependency>
</pre>
-</div></div></li><li>All package definitions which require tiles support must
either extend the struts-portlet-tiles-default package or must register the <a
shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Tiles+Result&linkCreation=true&fromPageId=30150178">Tiles
Result</a> type definition dedicated for Portlets.
+</div></div></li><li>All package definitions which require tiles support must
either extend the struts-portlet-tiles-default package or must register the <a
shape="rect" class="unresolved" href="#">Tiles Result</a> type definition
dedicated for Portlets.
<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;">
<result-types>
Modified: websites/production/struts/content/docs/processing-forms.html
==============================================================================
--- websites/production/struts/content/docs/processing-forms.html (original)
+++ websites/production/struts/content/docs/processing-forms.html Mon Feb 29
19:38:05 2016
@@ -138,7 +138,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This tutorial assumes you've
completed the <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Coding+Struts+2+Actons&linkCreation=true&fromPageId=14811889">Coding
Struts 2 Actons</a> tutorial and have a working coding_actions project. The
example code for this tutorial, form_processing, is available for checkout from
the Struts 2 GitHub subversion repository: <a shape="rect"
class="external-link" href="https://github.com/apache/struts-examples"
rel="nofollow">https://github.com/apache/struts-examples</a>.</p></div></div><h3
id="ProcessingForms-Introduction">Introduction</h3><p>In this tutorial we'll
explore using Struts 2 to do more involv
ed processing of a form submission. We'll cover how to use a Java model class
to store the form input and how to create the Struts 2 form to match up with
that model class.</p><p>The code provided in this tutorial may be added to the
<a shape="rect" href="coding-struts-2-actions.html">Coding Struts 2 Actions</a>
example or you can download this complete example from Google Code - <a
shape="rect" class="external-link"
href="http://code.google.com/p/struts2-examples/downloads/list"
rel="nofollow">http://code.google.com/p/struts2-examples/downloads/list</a>.</p><div
class="confluence-information-macro confluence-information-macro-tip"><span
class="aui-icon aui-icon-small aui-iconfont-approve
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>The <a shape="rect"
class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user
mailing list</a> is an excellent place to get help. If you are having a problem
getting the tutorial example
applications to work search the Struts 2 mailing list. If you don't find an
answer to your problem, post a question on the mailing list.</p></div></div><h3
id="ProcessingForms-FormsandAJavaModelClass">Forms and A Java Model
Class</h3><p>For this tutorial let's say we need to provide a form that a user
may submit to register for a prize drawing. Our business rules state the user
must provide his/her first name, last name, email address, and age.</p><p>To
encapsulate this data, we'll use a simple Java class that follows the basic
Java Bean specifications (public set/get methods for each instance field). If
you're following along add this class to package
org.apache.struts.register.model in the <a shape="rect"
href="coding-struts-2-actions.html">Coding Struts 2 Actions</a>
example.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width:
1px;"><b>Person.java</b></div><div class="codeContent panelContent pdl">
+ <div id="ConfluenceContent"><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This tutorial assumes you've
completed the <a shape="rect" class="unresolved" href="#">Coding Struts 2
Actons</a> tutorial and have a working coding_actions project. The example code
for this tutorial, form_processing, is available for checkout from the Struts 2
GitHub subversion repository: <a shape="rect" class="external-link"
href="https://github.com/apache/struts-examples"
rel="nofollow">https://github.com/apache/struts-examples</a>.</p></div></div><h3
id="ProcessingForms-Introduction">Introduction</h3><p>In this tutorial we'll
explore using Struts 2 to do more involved processing of a form submission.
We'll cover how to use a Java model class to store the form input and how to
create the Struts 2 form to match up
with that model class.</p><p>The code provided in this tutorial may be added
to the <a shape="rect" href="coding-struts-2-actions.html">Coding Struts 2
Actions</a> example or you can download this complete example from Google Code
- <a shape="rect" class="external-link"
href="http://code.google.com/p/struts2-examples/downloads/list"
rel="nofollow">http://code.google.com/p/struts2-examples/downloads/list</a>.</p><div
class="confluence-information-macro confluence-information-macro-tip"><span
class="aui-icon aui-icon-small aui-iconfont-approve
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>The <a shape="rect"
class="external-link" href="http://struts.apache.org/mail.html">Struts 2 user
mailing list</a> is an excellent place to get help. If you are having a problem
getting the tutorial example applications to work search the Struts 2 mailing
list. If you don't find an answer to your problem, post a question on the
mailing list.</p></div></d
iv><h3 id="ProcessingForms-FormsandAJavaModelClass">Forms and A Java Model
Class</h3><p>For this tutorial let's say we need to provide a form that a user
may submit to register for a prize drawing. Our business rules state the user
must provide his/her first name, last name, email address, and age.</p><p>To
encapsulate this data, we'll use a simple Java class that follows the basic
Java Bean specifications (public set/get methods for each instance field). If
you're following along add this class to package
org.apache.struts.register.model in the <a shape="rect"
href="coding-struts-2-actions.html">Coding Struts 2 Actions</a>
example.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width:
1px;"><b>Person.java</b></div><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">public class Person
{
private String firstName;
Modified: websites/production/struts/content/docs/release-notes-202.html
==============================================================================
--- websites/production/struts/content/docs/release-notes-202.html (original)
+++ websites/production/struts/content/docs/release-notes-202.html Mon Feb 29
19:38:05 2016
@@ -172,7 +172,7 @@ under the License.
<h2 id="ReleaseNotes2.0.2-NewFeaturesandPlugins">New Features and Plugins</h2>
-<ul><li>Plugins are now documented in the <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=S2PLUGINS&title=Angosso">Apache
Struts 2 Plugin Registry</a>.</li><li><a shape="rect"
href="annotations.html">Annotations</a>: @Result annotation now supports
parameters (WW-1575).</li><li><a shape="rect" href="ajax-tags.html">Ajax
Tags</a>: The Autocompleter AJAX tag wraps Dojo's ComboBox and supports remote,
static, and JSON content.</li><li><a shape="rect"
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33274">Spring
Plugin</a>: Integrate Spring with your application using a plugin (WW-1499).
Or, if you prefer, use the <a shape="rect"
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33365">Plexus
Plugin</a> instead.</li><li><a shape="rect"
href="file-upload-interceptor.html">File Uploading</a> Explore multiple file
uploading through our new Showcase example (WW-1479).</li><li><a sha
pe="rect" href="action.html">Action tag</a>: Eliminate unwanted exceptions
with the new <code>flush</code> attribute (WW-1472).</li><li><a shape="rect"
href="checkboxlist.html">Checkboxlist</a> tag: Use Maps with CheckboxList
(WW-1471).</li><li><a shape="rect" href="roles-interceptor.html">Roles
Interceptor</a>: Integrate JAAS with a new interceptor - now on the default
stack (WW-1469).</li><li><a shape="rect" href="textfield.html">Localized
Links</a>: Use the new <code>key</code> attribute to streamline link markup
(WW-1458).</li><li><a shape="rect" href="constant-configuration.html">Constant
Configuration</a>: Override factory default settings from any XML configurtion
document, including <code>web.xml</code>! (WW-1421).</li><li><a shape="rect"
href="strutsxml-examples.html">Action Class Ref</a>: Configure a custom default
Action for any package to use instead of ActionSupport (WW-1420).</li><li><a
shape="rect" href="struts-maven-archetypes.html">Struts Maven Archetypes</a>
The s
tandard archetype includes sample code from the <a shape="rect"
href="bootstrap.html">Bootstrap</a> tutorial {WW-1412).</li><li><a shape="rect"
href="result-types.html">Direct Results</a>: Create a custom Result Type
directly from an Action class (WW-1393).</li></ul>
+<ul><li>Plugins are now documented in the <a shape="rect" class="unresolved"
href="#">Apache Struts 2 Plugin Registry</a>.</li><li><a shape="rect"
href="annotations.html">Annotations</a>: @Result annotation now supports
parameters (WW-1575).</li><li><a shape="rect" href="ajax-tags.html">Ajax
Tags</a>: The Autocompleter AJAX tag wraps Dojo's ComboBox and supports remote,
static, and JSON content.</li><li><a shape="rect"
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33274">Spring
Plugin</a>: Integrate Spring with your application using a plugin (WW-1499).
Or, if you prefer, use the <a shape="rect"
href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33365">Plexus
Plugin</a> instead.</li><li><a shape="rect"
href="file-upload-interceptor.html">File Uploading</a> Explore multiple file
uploading through our new Showcase example (WW-1479).</li><li><a shape="rect"
href="action.html">Action tag</a>: Eliminate unwanted exceptions with the new
<code>f
lush</code> attribute (WW-1472).</li><li><a shape="rect"
href="checkboxlist.html">Checkboxlist</a> tag: Use Maps with CheckboxList
(WW-1471).</li><li><a shape="rect" href="roles-interceptor.html">Roles
Interceptor</a>: Integrate JAAS with a new interceptor - now on the default
stack (WW-1469).</li><li><a shape="rect" href="textfield.html">Localized
Links</a>: Use the new <code>key</code> attribute to streamline link markup
(WW-1458).</li><li><a shape="rect" href="constant-configuration.html">Constant
Configuration</a>: Override factory default settings from any XML configurtion
document, including <code>web.xml</code>! (WW-1421).</li><li><a shape="rect"
href="strutsxml-examples.html">Action Class Ref</a>: Configure a custom default
Action for any package to use instead of ActionSupport (WW-1420).</li><li><a
shape="rect" href="struts-maven-archetypes.html">Struts Maven Archetypes</a>
The standard archetype includes sample code from the <a shape="rect"
href="bootstrap.html">Bootstrap
</a> tutorial {WW-1412).</li><li><a shape="rect"
href="result-types.html">Direct Results</a>: Create a custom Result Type
directly from an Action class (WW-1393).</li></ul>
<h2 id="ReleaseNotes2.0.2-ExperimentalFeaturesandPlugins">Experimental
Features and Plugins </h2>
Modified: websites/production/struts/content/docs/release-plan-200.html
==============================================================================
--- websites/production/struts/content/docs/release-plan-200.html (original)
+++ websites/production/struts/content/docs/release-plan-200.html Mon Feb 29
19:38:05 2016
@@ -224,7 +224,7 @@ under the License.
<h2 id="ReleasePlan2.0.0-TestBuildDistributionChecklist(A)">Test Build
Distribution Checklist (A)</h2>
-<p>See also <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Creating+and+Signing+Releases&linkCreation=true&fromPageId=19602">Creating
and Signing Releases</a></p>
+<p>See also <a shape="rect" class="unresolved" href="#">Creating and Signing
Releases</a></p>
<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p> # </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Description </p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p> Completed </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> A1. </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> Setup new JIRA version level or update
release on Roadmap </p></td><th colspan="1" rowspan="1"
class="confluenceTh"><p> <img class="emoticon emoticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> Done </p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p> A2. </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Tag release in svn: ${STRUTS_2_0_0} </p></td><th
colspan="1" rowspan="1" class="confluenceTh"><p> <img class="emoticon emo
ticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> Done (r447072) </p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> A3. </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> Update POM version level and run
Distribution Target </p></td><th colspan="1" rowspan="1"
class="confluenceTh"><p> <img class="emoticon emoticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> Done </p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p> A4. </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Create Sums and Sign Distributions </p></td><th
colspan="1" rowspan="1" class="confluenceTh"><p> <img class="emoticon
emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb
3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> Done </p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p> A5. </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Upload Distribution to
<code>people.apache.org/builds/struts/2.0.0/</code> </p></td><th colspan="1"
rowspan="1" class="confluenceTh"><p> <img class="emoticon emoticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png"
data-emoticon-name="tick" alt="(tick)"> Done </p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p> A6. </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> Deploy JAR to Apache Java-Repository </p></td><th
colspan="1" rowspan="1" class="confluenceTh"><p> <img class="emoticon
emoticon-tick"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticon
s/check.png" data-emoticon-name="tick" alt="(tick)"> Done
</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> <code>$ mvn deploy -P pre-assembly</code> </p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p> A7. </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> Post release-quality vote on dev@ lists
</p></td><th colspan="1" rowspan="1" class="confluenceTh"><p> ${STATUS}
</p></th></tr></tbody></table></div>
Modified: websites/production/struts/content/docs/rest-plugin.html
==============================================================================
--- websites/production/struts/content/docs/rest-plugin.html (original)
+++ websites/production/struts/content/docs/rest-plugin.html Mon Feb 29
19:38:05 2016
@@ -139,11 +139,11 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
<div id="ConfluenceContent"><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This plugin is only available with
Struts 2.1.1 or later</p></div></div><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884501969 {padding: 0px;}
-div.rbtoc1453884501969 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884501969 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773665918 {padding: 0px;}
+div.rbtoc1456773665918 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773665918 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884501969">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773665918">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect" href="#RESTPlugin-Overview">Overview</a>
<ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a
shape="rect" href="#RESTPlugin-Features">Features</a></li><li><span
class="TOCOutline">1.2</span> <a shape="rect"
href="#RESTPlugin-MappingRESTURLstoStruts2Actions">Mapping REST URLs to Struts
2 Actions</a>
<ul class="toc-indentation"><li><span class="TOCOutline">1.2.1</span> <a
shape="rect" href="#RESTPlugin-RESTfulURLMappingLogic">RESTful URL Mapping
Logic</a></li></ul>
Modified: websites/production/struts/content/docs/result-configuration.html
==============================================================================
--- websites/production/struts/content/docs/result-configuration.html (original)
+++ websites/production/struts/content/docs/result-configuration.html Mon Feb
29 19:38:05 2016
@@ -139,14 +139,14 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
<div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884188561 {padding: 0px;}
-div.rbtoc1453884188561 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884188561 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773353562 {padding: 0px;}
+div.rbtoc1456773353562 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773353562 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884188561">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773353562">
<ul class="toc-indentation"><li><a shape="rect"
href="#ResultConfiguration-ResultElements">Result Elements</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#ResultConfiguration-IntelligentDefaults">Intelligent
Defaults</a></li><li><a shape="rect"
href="#ResultConfiguration-Multiplenames">Multiple names</a></li></ul>
-</li><li><a shape="rect" href="#ResultConfiguration-GlobalResults">Global
Results</a></li><li><a shape="rect"
href="#ResultConfiguration-DynamicResults">Dynamic Results</a></li></ul>
+</li><li><a shape="rect" href="#ResultConfiguration-GlobalResults">Global
Results</a></li><li><a shape="rect"
href="#ResultConfiguration-DynamicResults">Dynamic Results</a></li><li><a
shape="rect" href="#ResultConfiguration-ReturningResultObjects">Returning
Result Objects</a></li></ul>
</div><p>When an <a shape="rect" href="action.html">action</a> class method
completes, it returns a String. The value of the String is used to select a
result element. An action mapping will often have a set of results representing
different possible outcomes. A standard set of result tokens are defined by the
<code>ActionSupport</code> base class.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Predefined result names</b></div><div
class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">String SUCCESS = "success";
String NONE = "none";
@@ -155,10 +155,11 @@ String INPUT = "input";
String LOGIN = "login";
</pre>
</div></div><p>Of course, applications can define other result tokens to match
specific cases.</p><p><img class="emoticon emoticon-information"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/information.png"
data-emoticon-name="information" alt="(info)"> Returning <code><a shape="rect"
class="external-link"
href="http://struts.apache.org/2.x/struts2-core/apidocs/com/opensymphony/xwork2/Action.html#NONE">ActionSupport.NONE</a></code>
(or <code>null</code>) from an <a shape="rect" href="action.html">action</a>
class method causes the results processing to be skipped. This is useful if the
action fully handles the result processing such as writing directly to the
HttpServletResponse OutputStream.</p><h2
id="ResultConfiguration-ResultElements">Result Elements</h2><p>The result
element has two jobs. First, it provides a logical name. An <code>Action</code>
can pass back a token like "success" or "error" without kn
owing any other implementation details. Second, the result element provides a
result type. Most results simply forward to a server page or template, but
other <a shape="rect" href="result-types.html">Result Types</a> can be used to
do more interesting things.</p><h3
id="ResultConfiguration-IntelligentDefaults">Intelligent Defaults</h3><p>Each
package may set a default result type to be used if none is specified in a
result element. If one package extends another, the "child" package can set its
own default result, or inherit one from the parent.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Setting a default Result
Type</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><result-types>
- <result-type name="dispatcher" default="true"
- class="org.apache.struts2.dispatcher.ServletDispatcherResult"
/>
-</result-types>
+<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">public Result runAction() {
+ ServletDispatcherResult result = new ServletDispatcherResult();
+ result.setLocation("input-form.jsp");
+ return result;
+}
</pre>
</div></div><p>If a <code>type</code> attribute is not specified, the
framework will use the default <code>dispatcher</code> type, which forwards to
another web resource. If the resource is a JavaServer Page, then the container
will render it, using its JSP engine.</p><p>Likewise if the <code>name</code>
attribute is not specified, the framework will give it the name
"success".</p><p>Using these intelligent defaults, the most often used result
types also become the simplest.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Result element without
defaults</b></div><div class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><result name="success" type="dispatcher">
@@ -212,7 +213,13 @@ public String getNextAction() {
<result name="next"
type="redirectAction">${nextAction}</result>
</action>
</pre>
-</div></div><p>If a <code>FragmentAction</code> method returns "next" the
actual <em>value</em> of that result will be whatever is in
<code>FragmentAction</code>'s <code>nextAction</code> property. So
<code>nextAction</code> may be computed based on whatever state information
necessary then passed at runtime to "next"'s
<code>redirectAction</code>.</p><p>See <a shape="rect"
href="parameters-in-configuration-results.html">Parameters in configuration
results</a> for an expanded discussion.</p></div>
+</div></div><p>If a <code>FragmentAction</code> method returns "next" the
actual <em>value</em> of that result will be whatever is in
<code>FragmentAction</code>'s <code>nextAction</code> property. So
<code>nextAction</code> may be computed based on whatever state information
necessary then passed at runtime to "next"'s
<code>redirectAction</code>.</p><p>See <a shape="rect"
href="parameters-in-configuration-results.html">Parameters in configuration
results</a> for an expanded discussion.</p><p> </p><h2
id="ResultConfiguration-ReturningResultObjects">Returning Result
Objects</h2><p>Instead of configuring results and returning the name, it is
possible to return a result object:</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 Result runAction() {
+ ServletDispatcherResult result = new ServletDispatcherResult();
+ result.setLocation("input-form.jsp");
+ return result;
+}</pre>
+</div></div><p> </p><p> </p></div>
</div>
Modified: websites/production/struts/content/docs/result-types.html
==============================================================================
--- websites/production/struts/content/docs/result-types.html (original)
+++ websites/production/struts/content/docs/result-types.html Mon Feb 29
19:38:05 2016
@@ -138,7 +138,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><p>Most use cases can be divided into
two phases. First, we need to change or query the application's state, and then
we need to present an updated view of the application. The Action class manages
the application's state, and the Result Type manages the view.</p><h2
id="ResultTypes-PredefinedResultTypes">Predefined Result Types</h2><p>The
framework provides several implementations of the
<code>com.opensymphony.xwork2.Result</code> interface, ready to use in your own
applications.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="chain-result.html">Chain
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used for
<a shape="rect" href="action-chaining.html">Action
Chaining</a></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect"
href="dispatcher-result.html">Dispatcher Result</a></p></td><td colspan="1
" rowspan="1" class="confluenceTd"><p>Used for web resource integration,
including <a shape="rect" href="jsp.html">JSP</a>
integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect"
href="freemarker-result.html">FreeMarker Result</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Used for <a shape="rect"
href="freemarker.html">FreeMarker</a> integration</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="httpheader-result.html">HttpHeader Result</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Used to control special HTTP
behaviors</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="redirect-result.html">Redirect
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
redirect to another URL (web resource)</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><a shape="rect"
href="redirect-action-result.
html">Redirect Action Result</a></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to redirect to another action
mapping</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a
shape="rect" href="stream-result.html">Stream Result</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Used to stream an InputStream
back to the browser (usually for file downloads)</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="velocity-result.html">Velocity Result</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Used for <a shape="rect"
href="velocity.html">Velocity</a> integration</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><a shape="rect" href="xsl-result.html">XSL
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used for
XML/XSLT integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="plaintext-result.html">Pl
ainText Result</a></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to display the raw content of a particular page
(i.e jsp, HTML)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="tiles-2-plugin.html">Tiles 2
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
provide Tiles 2 integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="tiles-3-plugin.html">Tiles 3
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
provide Tiles 3 integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="postback-result.html">Postback
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
postback request parameters as a form to the specified
destination</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><a shape="rect" href="json-plugin.html">JSON
Result</a></td><
td colspan="1" rowspan="1" class="confluenceTd">Used to serialize actions into
JSON</td></tr></tbody></table></div><h3
id="ResultTypes-Optional">Optional</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect"
href="jasperreports-plugin.html">JasperReports Plugin</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Used for <a shape="rect"
href="jasperreports-tutorial.html">JasperReports Tutorial</a>
integration</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Optional, third-party
plugin</p></td></tr></tbody></table></div><p>Additional Result Types can be
created and plugged into an application by implementing the
<code>com.opensymphony.xwork2.Result</code> interface. Custom Result Types
might include generating an email or JMS message, generating images, and so
forth.</p><h2 id="ResultTypes-DefaultParameters">Default Parameters</h2><p>To
minimize configuration, Results can be co
nfigured with a single value, which will be converted into a parameter, and
each Result can specify which parameter this value should be set as. For
example, here is a result defined in XML that uses a default parameter:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+ <div id="ConfluenceContent"><p>Most use cases can be divided into
two phases. First, we need to change or query the application's state, and then
we need to present an updated view of the application. The Action class manages
the application's state, and the Result Type manages the view.</p><h2
id="ResultTypes-PredefinedResultTypes">Predefined Result Types</h2><p>The
framework provides several implementations of the
<code>com.opensymphony.xwork2.Result</code> interface, ready to use in your own
applications.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="chain-result.html">Chain
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used for
<a shape="rect" href="action-chaining.html">Action
Chaining</a></p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect"
href="dispatcher-result.html">Dispatcher Result</a></p></td><td colspan="1
" rowspan="1" class="confluenceTd"><p>Used for web resource integration,
including <a shape="rect" href="jsp.html">JSP</a>
integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect"
href="freemarker-result.html">FreeMarker Result</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Used for <a shape="rect"
href="freemarker.html">FreeMarker</a> integration</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="httpheader-result.html">HttpHeader Result</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Used to control special HTTP
behaviors</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="redirect-result.html">Redirect
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
redirect to another URL (web resource)</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><a shape="rect"
href="redirect-action-result.
html">Redirect Action Result</a></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to redirect to another action
mapping</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a
shape="rect" href="stream-result.html">Stream Result</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Used to stream an InputStream
back to the browser (usually for file downloads)</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
href="velocity-result.html">Velocity Result</a></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Used for <a shape="rect"
href="velocity.html">Velocity</a> integration</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><a shape="rect" href="xsl-result.html">XSL
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used for
XML/XSLT integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="plaintext-result.html">Pl
ainText Result</a></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Used to display the raw content of a particular page
(i.e jsp, HTML)</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="tiles-plugin.html">Tiles 2
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
provide Tiles 2 integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="tiles-3-plugin.html">Tiles 3
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
provide Tiles 3 integration</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect" href="postback-result.html">Postback
Result</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to
postback request parameters as a form to the specified
destination</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><a shape="rect" href="json-plugin.html">JSON
Result</a></td><td
colspan="1" rowspan="1" class="confluenceTd">Used to serialize actions into
JSON</td></tr></tbody></table></div><h3
id="ResultTypes-Optional">Optional</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><a shape="rect"
href="jasperreports-plugin.html">JasperReports Plugin</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Used for <a shape="rect"
href="jasperreports-tutorial.html">JasperReports Tutorial</a>
integration</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Optional, third-party
plugin</p></td></tr></tbody></table></div><p>Additional Result Types can be
created and plugged into an application by implementing the
<code>com.opensymphony.xwork2.Result</code> interface. Custom Result Types
might include generating an email or JMS message, generating images, and so
forth.</p><h2 id="ResultTypes-DefaultParameters">Default Parameters</h2><p>To
minimize configuration, Results can be conf
igured with a single value, which will be converted into a parameter, and each
Result can specify which parameter this value should be set as. For example,
here is a result defined in XML that uses a default parameter:</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;"><result type="freemarker">foo.fm</result>
</pre>
</div></div><p>That is the equivalent to this:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
Modified: websites/production/struts/content/docs/s2-003.html
==============================================================================
--- websites/production/struts/content/docs/s2-003.html (original)
+++ websites/production/struts/content/docs/s2-003.html Mon Feb 29 19:38:05 2016
@@ -139,11 +139,11 @@ under the License.
<p>So, for instance, to set #session.user to '0wn3d' the following parameter
name can be used:</p>
-<p>('\u0023' + 'session<a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=%5C%27user%5C%27&linkCreation=true&fromPageId=88882">\'user\'</a>')(unused)=0wn3d</p>
+<p>('\u0023' + 'session<a shape="rect" class="unresolved"
href="#">\'user\'</a>')(unused)=0wn3d</p>
<p>which will look as follows once URL encoded:</p>
-<p>('\u0023'%20%2b%20'session<a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=%5C%27user%5C%27&linkCreation=true&fromPageId=88882">\'user\'</a>')(unused)=0wn3d
</p>
+<p>('\u0023'%20%2b%20'session<a shape="rect" class="unresolved"
href="#">\'user\'</a>')(unused)=0wn3d </p>
<h2 id="S2-003-Solution">Solution</h2>
Added: websites/production/struts/content/docs/s2-027.html
==============================================================================
--- websites/production/struts/content/docs/s2-027.html (added)
+++ websites/production/struts/content/docs/s2-027.html Mon Feb 29 19:38:05 2016
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html>
+<head>
+ <link type="text/css" rel="stylesheet"
href="https://struts.apache.org/css/default.css">
+ <style type="text/css">
+ .dp-highlighter {
+ width:95% !important;
+ }
+ </style>
+ <style type="text/css">
+ .footer {
+ background-image:
url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+ background-repeat: repeat-x;
+ background-position: left top;
+ padding-top: 4px;
+ color: #666;
+ }
+ </style>
+ <script type="text/javascript" language="javascript">
+ var hide = null;
+ var show = null;
+ var children = null;
+
+ function init() {
+ /* Search form initialization */
+ var form = document.forms['search'];
+ if (form != null) {
+ form.elements['domains'].value = location.hostname;
+ form.elements['sitesearch'].value = location.hostname;
+ }
+
+ /* Children initialization */
+ hide = document.getElementById('hide');
+ show = document.getElementById('show');
+ children = document.all != null ?
+ document.all['children'] :
+ document.getElementById('children');
+ if (children != null) {
+ children.style.display = 'none';
+ show.style.display = 'inline';
+ hide.style.display = 'none';
+ }
+ }
+
+ function showChildren() {
+ children.style.display = 'block';
+ show.style.display = 'none';
+ hide.style.display = 'inline';
+ }
+
+ function hideChildren() {
+ children.style.display = 'none';
+ show.style.display = 'inline';
+ hide.style.display = 'none';
+ }
+ </script>
+ <title>S2-027</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+ <tr class="topBar">
+ <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+ <a href="home.html">Home</a> > <a
href="security-bulletins.html">Security Bulletins</a> > <a
href="s2-027.html">S2-027</a>
+ </td>
+ <td align="right" valign="middle" nowrap>
+ <form name="search" action="https://www.google.com/search"
method="get">
+ <input type="hidden" name="ie" value="UTF-8" />
+ <input type="hidden" name="oe" value="UTF-8" />
+ <input type="hidden" name="domains" value="" />
+ <input type="hidden" name="sitesearch" value="" />
+ <input type="text" name="q" maxlength="255" value="" />
+ <input type="submit" name="btnG" value="Google Search" />
+ </form>
+ </td>
+ </tr>
+</table>
+
+<div id="PageContent">
+ <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+ <!-- We'll enable this once we figure out how to access (and save) the
logo resource -->
+ <!--img src="/wiki/images/confluence_logo.gif" style="float: left;
margin: 4px 4px 4px 10px;" border="0"-->
+ <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts
2 Documentation</div>
+ <div style="margin: 0px 10px 8px 10px" class="pagetitle">S2-027</div>
+
+ <div class="greynavbar" align="right" style="padding: 2px 10px;
margin: 0px;">
+ <a
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=61341645">
+ <img
src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif"
+ height="16" width="16" border="0" align="absmiddle"
title="Edit Page"></a>
+ <a
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=61341645">Edit
Page</a>
+
+ <a
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">
+ <img
src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif"
+ height="16" width="16" border="0" align="absmiddle"
title="Browse Space"></a>
+ <a
href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">Browse
Space</a>
+
+ <a
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=61341645">
+ <img
src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"
+ height="16" width="16" border="0" align="absmiddle"
title="Add Page"></a>
+ <a
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=61341645">Add
Page</a>
+
+ <a
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=61341645">
+ <img
src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"
+ height="16" width="16" border="0" align="absmiddle"
title="Add News"></a>
+ <a
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=61341645">Add
News</a>
+ </div>
+ </div>
+
+ <div class="pagecontent">
+ <div class="wiki-content">
+ <div id="ConfluenceContent"><h2
id="S2-027-Summary">Summary</h2><code>TextParseUtil.translateVariables</code>
does not filter malicious OGNL expressions<div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Who should read this</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>All Struts 2
developers</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Impact of vulnerability</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Remote Code Execution, when unsanitized
user input is passed to the method by a developer</p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Maximum security
rating</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Low</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Recommendation</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Don't pass unsanitized input to the said method or
ActionSupport's
getText methods. An upgrade to <a shape="rect" class="external-link"
href="http://struts.apache.org/download.cgi#struts23241">Struts 2.3.24.1</a> is
recommended.</p></td></tr><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Affected Software</p></th><td colspan="1" rowspan="1"
class="confluenceTd"><p>Struts 2.0.0 - Struts <span style="color:
rgb(23,35,59);">Struts 2.3.16.3</span></p></td></tr><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Reporter</p></th><td colspan="1"
rowspan="1" class="confluenceTd"><p>Huawei PSIRT Team</p></td></tr><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>CVE Identifier</p></th><td
colspan="1" rowspan="1" class="confluenceTd"><p><span style="color:
rgb(34,34,34);">-</span></p></td></tr></tbody></table></div><h2
id="S2-027-Problem">Problem</h2><p><code>TextParseUtil.translateVariables</code><span>
evaluates a given String with OGNL. Before Struts 2.3.20, a specially crafted
String incorporating ANTLR tooling can, when passed to sa
id method, cause a remote code execution.</span></p><p><span>The Struts 2
framework does not pass any user modifiable input to this method, neither
directly nor indirectly. However, a developer crafting a Struts based web
application might pass unsanitized user input to
<span>TextParseUtil.translateVariables</span> or ActionSupport's getText
methods. In that case a RCE exploitation might be possible.</span></p><h2
id="S2-027-Solution">Solution</h2><ul><li>don't pass unsanitized user input to
framework methods that include OGNL expression evaluation</li><li>upgrade to
Struts 2.3.24.1. Since Struts 2.3.20 advanced filtering was applied to this and
similar methods involving OGNL evaluation.</li></ul><p> </p></div>
+ </div>
+
+
+ </div>
+</div>
+<div class="footer">
+ Generated by CXF SiteExporter
+</div>
+</body>
+</html>
Modified: websites/production/struts/content/docs/sample-announcements.html
==============================================================================
--- websites/production/struts/content/docs/sample-announcements.html (original)
+++ websites/production/struts/content/docs/sample-announcements.html Mon Feb
29 19:38:05 2016
@@ -127,11 +127,11 @@ under the License.
<div class="wiki-content">
<div id="ConfluenceContent"><h1
id="Sampleannouncements-Content">Content</h1>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884616256 {padding: 0px;}
-div.rbtoc1453884616256 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1453884616256 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773755099 {padding: 0px;}
+div.rbtoc1456773755099 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1456773755099 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884616256">
+/*]]>*/</style><div class="toc-macro rbtoc1456773755099">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect" href="#Sampleannouncements-Content">Content</a>
<ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a
shape="rect"
href="#Sampleannouncements-SampleStrutsAnnotationsRelease/QualityVote">Sample
Struts Annotations Release/Quality Vote</a></li><li><span
class="TOCOutline">1.2</span> <a shape="rect"
href="#Sampleannouncements-SampleTestBuildAnnouncement">Sample Test Build
Announcement</a></li><li><span class="TOCOutline">1.3</span> <a shape="rect"
href="#Sampleannouncements-SampleRelease/QualityVote">Sample Release/Quality
Vote</a></li><li><span class="TOCOutline">1.4</span> <a shape="rect"
href="#Sampleannouncements-SampleReleaseAnnouncement">Sample Release
Announcement</a></li><li><span class="TOCOutline">1.5</span> <a shape="rect"
href="#Sampleannouncements-Fast-TrackinganImportantSecurityRelease">Fast-Tracking
an Important Security Release</a></li></ul>
</li></ul>