Modified: websites/production/struts/content/docs/security-bulletins.html
==============================================================================
--- websites/production/struts/content/docs/security-bulletins.html (original)
+++ websites/production/struts/content/docs/security-bulletins.html Mon Feb 29
19:38:05 2016
@@ -126,7 +126,7 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
<div id="ConfluenceContent"><p>The following security bulletins
are available:</p>
-<ul class="childpages-macro"><li><a shape="rect" href="s2-001.html">S2-001</a>
— <span class="smalltext">Remote code exploit on form validation
error</span></li><li><a shape="rect" href="s2-002.html">S2-002</a> —
<span class="smalltext">Cross site scripting (XSS) vulnerability on
<s:url> and <s:a> tags</span></li><li><a shape="rect"
href="s2-003.html">S2-003</a> — <span class="smalltext">XWork
ParameterInterceptors bypass allows OGNL statement execution</span></li><li><a
shape="rect" href="s2-004.html">S2-004</a> — <span
class="smalltext">Directory traversal vulnerability while serving static
content</span></li><li><a shape="rect" href="s2-005.html">S2-005</a> —
<span class="smalltext">XWork ParameterInterceptors bypass allows remote
command execution</span></li><li><a shape="rect" href="s2-006.html">S2-006</a>
— <span class="smalltext">Multiple Cross-Site Scripting (XSS) in XWork
generated error pages</span></li><li><a shape="rect" hr
ef="s2-007.html">S2-007</a> — <span class="smalltext">User input is
evaluated as an OGNL expression when there's a conversion
error</span></li><li><a shape="rect" href="s2-008.html">S2-008</a> —
<span class="smalltext">Multiple critical vulnerabilities in
Struts2</span></li><li><a shape="rect" href="s2-009.html">S2-009</a> —
<span class="smalltext">ParameterInterceptor vulnerability allows remote
command execution</span></li><li><a shape="rect" href="s2-010.html">S2-010</a>
— <span class="smalltext">When using Struts 2 token mechanism for CSRF
protection, token check may be bypassed by misusing known session
attributes</span></li><li><a shape="rect" href="s2-011.html">S2-011</a> —
<span class="smalltext">Long request parameter names might significantly
promote the effectiveness of DOS attacks</span></li><li><a shape="rect"
href="s2-012.html">S2-012</a> — <span class="smalltext">Showcase app
vulnerability allows remote command execution</span></li>
<li><a shape="rect" href="s2-013.html">S2-013</a> — <span
class="smalltext">A vulnerability, present in the includeParams attribute of
the URL and Anchor Tag, allows remote command execution</span></li><li><a
shape="rect" href="s2-014.html">S2-014</a> — <span class="smalltext">A
vulnerability introduced by forcing parameter inclusion in the URL and Anchor
Tag allows remote command execution, session access and manipulation and XSS
attacks</span></li><li><a shape="rect" href="s2-015.html">S2-015</a> —
<span class="smalltext">A vulnerability introduced by wildcard matching
mechanism or double evaluation of OGNL Expression allows remote command
execution.</span></li><li><a shape="rect" href="s2-016.html">S2-016</a> —
<span class="smalltext">A vulnerability introduced by manipulating parameters
prefixed with "action:"/"redirect:"/"redirectAction:" allows remote command
execution</span></li><li><a shape="rect" href="s2-017.html">S2-017</a> —
<span class="sma
lltext">A vulnerability introduced by manipulating parameters prefixed with
"redirect:"/"redirectAction:" allows for open redirects</span></li><li><a
shape="rect" href="s2-018.html">S2-018</a> — <span
class="smalltext">Broken Access Control Vulnerability in Apache
Struts2</span></li><li><a shape="rect" href="s2-019.html">S2-019</a> —
<span class="smalltext">Dynamic Method Invocation disabled by
default</span></li><li><a shape="rect" href="s2-020.html">S2-020</a> —
<span class="smalltext">Upgrade Commons FileUpload to version 1.3.1 (avoids DoS
attacks) and adds 'class' to exclude params in ParametersInterceptor (avoid
ClassLoader manipulation)</span></li><li><a shape="rect"
href="s2-021.html">S2-021</a> — <span class="smalltext">Improves excluded
params in ParametersInterceptor and CookieInterceptor to avoid ClassLoader
manipulation</span></li><li><a shape="rect" href="s2-022.html">S2-022</a>
— <span class="smalltext">Extends excluded params in CookieInt
erceptor to avoid manipulation of Struts' internals</span></li><li><a
shape="rect" href="s2-023.html">S2-023</a> — <span
class="smalltext">Generated value of token can be predictable</span></li><li><a
shape="rect" href="s2-024.html">S2-024</a> — <span
class="smalltext">Wrong excludeParams overrides those defined in
DefaultExcludedPatternsChecker</span></li><li><a shape="rect"
href="s2-025.html">S2-025</a> — <span class="smalltext">Cross-Site
Scripting Vulnerability in Debug Mode and in exposed JSP
files</span></li><li><a shape="rect" href="s2-026.html">S2-026</a> —
<span class="smalltext">Special top object can be used to access Struts'
internals</span></li></ul></div>
+<ul class="childpages-macro"><li><a shape="rect" href="s2-001.html">S2-001</a>
— <span class="smalltext">Remote code exploit on form validation
error</span></li><li><a shape="rect" href="s2-002.html">S2-002</a> —
<span class="smalltext">Cross site scripting (XSS) vulnerability on
<s:url> and <s:a> tags</span></li><li><a shape="rect"
href="s2-003.html">S2-003</a> — <span class="smalltext">XWork
ParameterInterceptors bypass allows OGNL statement execution</span></li><li><a
shape="rect" href="s2-004.html">S2-004</a> — <span
class="smalltext">Directory traversal vulnerability while serving static
content</span></li><li><a shape="rect" href="s2-005.html">S2-005</a> —
<span class="smalltext">XWork ParameterInterceptors bypass allows remote
command execution</span></li><li><a shape="rect" href="s2-006.html">S2-006</a>
— <span class="smalltext">Multiple Cross-Site Scripting (XSS) in XWork
generated error pages</span></li><li><a shape="rect" hr
ef="s2-007.html">S2-007</a> — <span class="smalltext">User input is
evaluated as an OGNL expression when there's a conversion
error</span></li><li><a shape="rect" href="s2-008.html">S2-008</a> —
<span class="smalltext">Multiple critical vulnerabilities in
Struts2</span></li><li><a shape="rect" href="s2-009.html">S2-009</a> —
<span class="smalltext">ParameterInterceptor vulnerability allows remote
command execution</span></li><li><a shape="rect" href="s2-010.html">S2-010</a>
— <span class="smalltext">When using Struts 2 token mechanism for CSRF
protection, token check may be bypassed by misusing known session
attributes</span></li><li><a shape="rect" href="s2-011.html">S2-011</a> —
<span class="smalltext">Long request parameter names might significantly
promote the effectiveness of DOS attacks</span></li><li><a shape="rect"
href="s2-012.html">S2-012</a> — <span class="smalltext">Showcase app
vulnerability allows remote command execution</span></li>
<li><a shape="rect" href="s2-013.html">S2-013</a> — <span
class="smalltext">A vulnerability, present in the includeParams attribute of
the URL and Anchor Tag, allows remote command execution</span></li><li><a
shape="rect" href="s2-014.html">S2-014</a> — <span class="smalltext">A
vulnerability introduced by forcing parameter inclusion in the URL and Anchor
Tag allows remote command execution, session access and manipulation and XSS
attacks</span></li><li><a shape="rect" href="s2-015.html">S2-015</a> —
<span class="smalltext">A vulnerability introduced by wildcard matching
mechanism or double evaluation of OGNL Expression allows remote command
execution.</span></li><li><a shape="rect" href="s2-016.html">S2-016</a> —
<span class="smalltext">A vulnerability introduced by manipulating parameters
prefixed with "action:"/"redirect:"/"redirectAction:" allows remote command
execution</span></li><li><a shape="rect" href="s2-017.html">S2-017</a> —
<span class="sma
lltext">A vulnerability introduced by manipulating parameters prefixed with
"redirect:"/"redirectAction:" allows for open redirects</span></li><li><a
shape="rect" href="s2-018.html">S2-018</a> — <span
class="smalltext">Broken Access Control Vulnerability in Apache
Struts2</span></li><li><a shape="rect" href="s2-019.html">S2-019</a> —
<span class="smalltext">Dynamic Method Invocation disabled by
default</span></li><li><a shape="rect" href="s2-020.html">S2-020</a> —
<span class="smalltext">Upgrade Commons FileUpload to version 1.3.1 (avoids DoS
attacks) and adds 'class' to exclude params in ParametersInterceptor (avoid
ClassLoader manipulation)</span></li><li><a shape="rect"
href="s2-021.html">S2-021</a> — <span class="smalltext">Improves excluded
params in ParametersInterceptor and CookieInterceptor to avoid ClassLoader
manipulation</span></li><li><a shape="rect" href="s2-022.html">S2-022</a>
— <span class="smalltext">Extends excluded params in CookieInt
erceptor to avoid manipulation of Struts' internals</span></li><li><a
shape="rect" href="s2-023.html">S2-023</a> — <span
class="smalltext">Generated value of token can be predictable</span></li><li><a
shape="rect" href="s2-024.html">S2-024</a> — <span
class="smalltext">Wrong excludeParams overrides those defined in
DefaultExcludedPatternsChecker</span></li><li><a shape="rect"
href="s2-025.html">S2-025</a> — <span class="smalltext">Cross-Site
Scripting Vulnerability in Debug Mode and in exposed JSP
files</span></li><li><a shape="rect" href="s2-026.html">S2-026</a> —
<span class="smalltext">Special top object can be used to access Struts'
internals</span></li><li><a shape="rect" href="s2-027.html">S2-027</a> —
<span class="smalltext">TextParseUtil.translateVariables does not filter
malicious OGNL expressions</span></li></ul></div>
</div>
<div class="tabletitle">
@@ -141,6 +141,9 @@ under the License.
<span class="smalltext">(Apache Struts 2
Documentation)</span>
<br>
$page.link($child)
+ <span class="smalltext">(Apache Struts 2
Documentation)</span>
+ <br>
+ $page.link($child)
<span class="smalltext">(Apache Struts 2
Documentation)</span>
<br>
$page.link($child)
Modified: websites/production/struts/content/docs/security.html
==============================================================================
--- websites/production/struts/content/docs/security.html (original)
+++ websites/production/struts/content/docs/security.html Mon Feb 29 19:38:05
2016
@@ -139,11 +139,11 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
<div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884667082 {padding: 0px;}
-div.rbtoc1453884667082 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884667082 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773801895 {padding: 0px;}
+div.rbtoc1456773801895 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773801895 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884667082">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773801895">
<ul class="toc-indentation"><li><a shape="rect"
href="#Security-Securitytips">Security tips</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#Security-RestrictaccesstotheConfigBrowser">Restrict access to the Config
Browser</a></li><li><a shape="rect"
href="#Security-Don'tmixdifferentaccesslevelsinthesamenamespace">Don't mix
different access levels in the same namespace</a></li><li><a shape="rect"
href="#Security-NeverexposeJSPfilesdirectly">Never expose JSP files
directly</a></li><li><a shape="rect" href="#Security-DisabledevMode">Disable
devMode</a></li><li><a shape="rect" href="#Security-UseUTF-8encoding">Use UTF-8
encoding</a></li></ul>
</li><li><a shape="rect" href="#Security-Internalsecuritymechanism">Internal
security mechanism</a>
Modified: websites/production/struts/content/docs/struts-2-blank-archetype.html
==============================================================================
--- websites/production/struts/content/docs/struts-2-blank-archetype.html
(original)
+++ websites/production/struts/content/docs/struts-2-blank-archetype.html Mon
Feb 29 19:38:05 2016
@@ -149,11 +149,11 @@ under the License.
<p><strong>Contents</strong></p>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884536773 {padding: 0px;}
-div.rbtoc1453884536773 ul {list-style: none;margin-left: 0px;padding-left:
1em;}
-div.rbtoc1453884536773 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773702121 {padding: 0px;}
+div.rbtoc1456773702121 ul {list-style: none;margin-left: 0px;padding-left:
1em;}
+div.rbtoc1456773702121 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884536773">
+/*]]>*/</style><div class="toc-macro rbtoc1456773702121">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect"
href="#Struts2BlankArchetype-CreatingOurblank-archetypeProject">Creating Our
blank-archetype Project</a>
<ul class="toc-indentation"><li><span class="TOCOutline">1.1</span> <a
shape="rect" href="#Struts2BlankArchetype-Stagingrepository">Staging
repository</a></li></ul>
</li><li><span class="TOCOutline">2</span> <a shape="rect"
href="#Struts2BlankArchetype-ProjectStructure">Project Structure</a>
Modified: websites/production/struts/content/docs/struts-2-maven-archetypes.html
==============================================================================
--- websites/production/struts/content/docs/struts-2-maven-archetypes.html
(original)
+++ websites/production/struts/content/docs/struts-2-maven-archetypes.html Mon
Feb 29 19:38:05 2016
@@ -143,11 +143,11 @@ under the License.
<p><strong>Contents</strong></p>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884535519 {padding: 0px;}
-div.rbtoc1453884535519 ul {list-style: none;margin-left: 0px;padding-left:
1em;}
-div.rbtoc1453884535519 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773703153 {padding: 0px;}
+div.rbtoc1456773703153 ul {list-style: none;margin-left: 0px;padding-left:
1em;}
+div.rbtoc1456773703153 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884535519">
+/*]]>*/</style><div class="toc-macro rbtoc1456773703153">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect"
href="#Struts2MavenArchetypes-Quickstart">Quickstart</a></li><li><span
class="TOCOutline">2</span> <a shape="rect"
href="#Struts2MavenArchetypes-AvailableArchetypes">Available Archetypes</a>
<ul class="toc-indentation"><li><span class="TOCOutline">2.1</span> <a
shape="rect"
href="#Struts2MavenArchetypes-TheBlankConventionArchetype(struts2-archetype-convention)">The
Blank Convention Archetype (struts2-archetype-convention)</a></li><li><span
class="TOCOutline">2.2</span> <a shape="rect"
href="#Struts2MavenArchetypes-TheBlankArchetype(struts2-archetype-blank)">The
Blank Archetype (struts2-archetype-blank)</a></li><li><span
class="TOCOutline">2.3</span> <a shape="rect"
href="#Struts2MavenArchetypes-TheStarterArchetype(struts2-archetype-starter)">The
Starter Archetype (struts2-archetype-starter)</a></li><li><span
class="TOCOutline">2.4</span> <a shape="rect"
href="#Struts2MavenArchetypes-TheAngularJSArchetype(struts2-archetype-angularjs)">The
AngularJS Archetype (struts2-archetype-angularjs)</a></li><li><span
class="TOCOutline">2.5</span> <a shape="rect"
href="#Struts2MavenArchetypes-ThePortletBlankArchetype(struts2-archetype-portlet)">The
Portlet Blank Archetype (struts2-ar
chetype-portlet)</a></li><li><span class="TOCOutline">2.6</span> <a
shape="rect"
href="#Struts2MavenArchetypes-ThePortletDatabaseArchetype(struts2-archetype-dbportlet)">The
Portlet Database Archetype (struts2-archetype-dbportlet)</a></li><li><span
class="TOCOutline">2.7</span> <a shape="rect"
href="#Struts2MavenArchetypes-ThePluginArchetype(struts2-archetype-plugin)">The
Plugin Archetype (struts2-archetype-plugin)</a></li></ul>
</li><li><span class="TOCOutline">3</span> <a shape="rect"
href="#Struts2MavenArchetypes-CreatinganApplicationUsingaMavenArchetype">Creating
an Application Using a Maven Archetype</a>
Modified:
websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html
==============================================================================
--- websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html
(original)
+++ websites/production/struts/content/docs/struts-2-spring-2-jpa-ajax.html Mon
Feb 29 19:38:05 2016
@@ -145,11 +145,11 @@ under the License.
<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>Following this tutorial verbatim
will require use of a Struts 2 deployment greater than 2.0.3</p></div></div>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884419616 {padding: 0px;}
-div.rbtoc1453884419616 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1453884419616 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773601716 {padding: 0px;}
+div.rbtoc1456773601716 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1456773601716 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884419616">
+/*]]>*/</style><div class="toc-macro rbtoc1456773601716">
<ul class="toc-indentation"><li><a shape="rect"
href="#Struts2+Spring2+JPA+AJAX-Prerequisites">Prerequisites</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#Struts2+Spring2+JPA+AJAX-Tomcat">Tomcat</a></li><li><a shape="rect"
href="#Struts2+Spring2+JPA+AJAX-MySql">MySql</a></li></ul>
</li><li><a shape="rect" href="#Struts2+Spring2+JPA+AJAX-Getthecode">Get the
code</a>
Modified: websites/production/struts/content/docs/struts-next.html
==============================================================================
--- websites/production/struts/content/docs/struts-next.html (original)
+++ websites/production/struts/content/docs/struts-next.html Mon Feb 29
19:38:05 2016
@@ -125,12 +125,12 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
- <div id="ConfluenceContent"><h3
id="StrutsNext-/*<![CDATA[*/div.rbtoc1453884611957{padding:0px;}div.rbtoc1453884611957ul{list-style:disc;margin-left:0px;}div.rbtoc1453884611957li{margin-left:0px;padding-left:0px;}/*]]>*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1453884611957 {padding: 0px;}
-div.rbtoc1453884611957 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884611957 li {margin-left: 0px;padding-left: 0px;}
+ <div id="ConfluenceContent"><h3
id="StrutsNext-/*<![CDATA[*/div.rbtoc1456773756987{padding:0px;}div.rbtoc1456773756987ul{list-style:disc;margin-left:0px;}div.rbtoc1456773756987li{margin-left:0px;padding-left:0px;}/*]]>*/#StrutsNext-Whatshouldbeimproved/changed#StrutsNext-Whatshouldbeimprove"><style
type="text/css">/*<![CDATA[*/
+div.rbtoc1456773756987 {padding: 0px;}
+div.rbtoc1456773756987 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773756987 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></h3><div class="toc-macro rbtoc1453884611957">
+/*]]>*/</style></h3><div class="toc-macro rbtoc1456773756987">
<ul class="toc-indentation"><li><a shape="rect"
href="#StrutsNext-"></a></li></ul>
<ul><li><a shape="rect" href="#StrutsNext-Whatshouldbeimproved/changed">What
should be improved / changed</a></li><li><a shape="rect"
href="#StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#StrutsNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</a></li><li><a
shape="rect" href="#StrutsNext-M2(alphaStruts3)">M2 (alpha Struts
3)</a></li><li><a shape="rect" href="#StrutsNext-M3(alphaStruts3)">M3 (alpha
Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M4(beta1Struts3)">M4
(beta 1 Struts 3)</a></li></ul>
Modified: websites/production/struts/content/docs/tiles-3-plugin.html
==============================================================================
--- websites/production/struts/content/docs/tiles-3-plugin.html (original)
+++ websites/production/struts/content/docs/tiles-3-plugin.html Mon Feb 29
19:38:05 2016
@@ -138,62 +138,30 @@ 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>Tiles is a templating framework
designed to easily allow the creation of web application pages with a
consistent look and feel. It can be used for both page decorating and
componentization. This is the first release of the plugin!</p></div></div>
-<p>The Tiles 3 plugin allows actions to return Tiles 3 pages.</p>
-
-<h2 id="Tiles3Plugin-Features">Features</h2>
-
-<ul><li>Supports Tiles in Freemarker, JSP, and Velocity - more testing is
needed</li></ul>
-
-
-<h2 id="Tiles3Plugin-Usage">Usage</h2>
-
-<p>The following steps must be taken in order to enable Tiles 3 support within
your Struts2 application:</p>
-<ol><li>Include the struts-tiles3-plugin as a dependency in your web
application, do not include the old struts2-tiles-plugin! If you are using
maven3, the dependency configuration will be similar to:
-<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;">
-<dependency>
+ <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 plugin was dropped in Struts
2.5, instead please use <a shape="rect" href="tiles-plugin.html">Tiles
Plugin</a> which was extended and upgraded to Tiles 3.</p></div></div><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>Tiles is a templating framework
designed to easily allow the creation of web application pages with a
consistent look and feel. It can be used for both page decorating and
componentization. This is the first release of the
plugin!</p></div></div><p>The Tiles 3 pluginallows actions to return Tiles 3
pages.</p><h2 id="Tiles3P
lugin-Features">Features</h2><ul><li>Supports Tiles in Freemarker, JSP, and
Velocity - more testing is needed</li></ul><h2
id="Tiles3Plugin-Usage">Usage</h2><p>The following steps must be taken in order
to enable Tiles 3 support within your Struts2
application:</p><ol><li><p>Include the struts-tiles3-plugin as a dependency in
your web application, do not include the old struts2-tiles-plugin! If you are
using maven3, the dependency configuration will be similar to:</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;"><dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles3-plugin</artifactId>
<version>${version.tiles}</version>
<scope>compile</scope>
</dependency>
</pre>
-</div></div></li><li>Register the tiles listener.
-<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;">
-<listener>
+</div></div></li><li><p>Register the tiles listener.</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;"><listener>
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>
</pre>
-</div></div></li><li>All package definitions which require tiles support must
either extend the 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+3+Result&linkCreation=true&fromPageId=30750969">Tiles
3 Result</a> type definition.
-<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-types>
+</div></div></li><li><p>All package definitions which require tiles support
must either extend the tiles-default package or must register the <a
shape="rect" class="unresolved" href="#">Tiles 3 Result</a> type
definition.</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-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>
</pre>
-</div></div></li><li>Configure your actions to utilize a tiles definition:
-<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="sample" class="org.apache.struts2.tiles.example.SampleAction"
>
+</div></div></li><li><p>Configure your actions to utilize a tiles
definition:</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="sample"
class="org.apache.struts2.tiles.example.SampleAction" >
<result name="success" type="tiles">tilesWorks</result>
</action>
</pre>
-</div></div></li></ol>
-
-
-<h2 id="Tiles3Plugin-Example">Example</h2>
-
-<p>TBD</p>
-
-<h2 id="Tiles3Plugin-Settings">Settings</h2>
-
-<p>This plugin does inherits settings from <a shape="rect"
class="external-link"
href="http://tiles.apache.org/config-reference.html">Tiles
configuration</a>.</p>
-
-<h2 id="Tiles3Plugin-Installation">Installation</h2>
-
-<p>This plugin can be installed by copying the plugin jar into your
application's <code>/WEB-INF/lib</code> directory. No other files need to be
copied or created.</p></div>
+</div></div></li></ol><h2 id="Tiles3Plugin-Example">Example</h2><p>TBD</p><h2
id="Tiles3Plugin-Settings">Settings</h2><p>This plugin does inherits settings
from <a shape="rect" class="external-link"
href="http://tiles.apache.org/config-reference.html">Tiles
configuration</a>.</p><h2
id="Tiles3Plugin-Installation">Installation</h2><p>This plugin can be installed
by copying the plugin jar into your application's <code>/WEB-INF/lib</code>
directory. No other files need to be copied or created.</p></div>
</div>
Added: websites/production/struts/content/docs/tiles-plugin.html
==============================================================================
--- websites/production/struts/content/docs/tiles-plugin.html (added)
+++ websites/production/struts/content/docs/tiles-plugin.html Mon Feb 29
19:38:05 2016
@@ -0,0 +1,228 @@
+<!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>
+ <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css'
rel='stylesheet' type='text/css' />
+ <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css'
rel='stylesheet' type='text/css' />
+ <script src='https://struts.apache.org/highlighter/js/shCore.js'
type='text/javascript'></script>
+ <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js'
type='text/javascript'></script>
+ <script src='https://struts.apache.org/highlighter/js/shBrushXml.js'
type='text/javascript'></script>
+ <script src='https://struts.apache.org/highlighter/js/shBrushJava.js'
type='text/javascript'></script>
+ <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js'
type='text/javascript'></script>
+ <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js'
type='text/javascript'></script>
+ <script src='https://struts.apache.org/highlighter/js/shBrushBash.js'
type='text/javascript'></script>
+ <script type="text/javascript">
+ SyntaxHighlighter.defaults['toolbar'] = false;
+ SyntaxHighlighter.all();
+ </script>
+ <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>Tiles Plugin</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="guides.html">Guides</a> > <a
href="plugin-developers-guide.html">Plugin Developers
Guide</a> > <a href="tiles-plugin.html">Tiles Plugin</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">Tiles
Plugin</div>
+
+ <div class="greynavbar" align="right" style="padding: 2px 10px;
margin: 0px;">
+ <a
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27401">
+ <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=27401">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=27401">
+ <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=27401">Add
Page</a>
+
+ <a
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=27401">
+ <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=27401">Add
News</a>
+ </div>
+ </div>
+
+ <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>Tiles is a templating framework
designed to easily allow the creation of web application pages with a
consistent look and feel. It can be used for both page decorating and
componentization.</p></div></div><p>The Tiles pluginallows actions to return
Tiles pages</p><h2 id="TilesPlugin-Features">Features</h2><ul><li>Supports
Tiles in Freemarker, JSP, and Velocity</li><li>Provides annotations to keep
tiles.xml short and put definitons into actions</li></ul><h2
id="TilesPlugin-Usage">Usage</h2><p>The following steps must be taken in order
to enable tiles support within your Struts2 application:</p><ol><li><p>Include
the struts-tiles-plugin as a dependency in your web application. If you are
using maven2, the dependency con
figuration will be similar to:</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;"><dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-tiles-plugin</artifactId>
+ <version>${version.tiles}</version>
+ <scope>compile</scope>
+</dependency>
+</pre>
+</div></div></li><li><p>Register the tiles listener. This listener will
typically either be the standard tiles listener
(org.apache.tiles.listener.TilesListener) or the Struts2 replacement
(org.apache.struts2.tiles.TilesListener). The latter provides tighter
integration with Struts features such as freemarker integration.</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;"><listener>
+
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
+</listener>
+</pre>
+</div></div></li><li><p>All package definitions which require tiles support
must either extend the tiles-default package or must register the <a
shape="rect" class="unresolved" href="#">Tiles Result</a> type
definition.</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-types>
+ <result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult"/>
+</result-types>
+</pre>
+</div></div></li><li><p>Configure your actions to utilize a tiles
definition:</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="sample"
class="org.apache.struts2.tiles.example.SampleAction" >
+ <result name="success" type="tiles">tilesWorks</result>
+</action>
+</pre>
+</div></div></li><li><p>Instead of xml configuration you can use
annotations</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;">@Result(name = "success", type="tiles")
+@TilesDefinition(extend = "fooLayout", putAttributes = {
+ @TilesPutAttribute(name = "header", value = "/WEB-INF/tiles/header.jsp"),
+ @TilesPutAttribute(name = "body", value = "/WEB-INF/tiles/body.ftl")
+})
+public class FooAction extends ActionSupport {</pre>
+</div></div></li><li><p>You have to define Tiles Definitons in a tiles.xml
file. That can be placed in <code>resources</code> or in
<code>WEB-INF</code>.</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;"><!DOCTYPE tiles-definitions PUBLIC
+ "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
+ "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
+
+<tiles-definitions>
+
+ <definition name="fooLayout" template="/WEB-INF/tiles/layout.jsp">
+ <put-attribute name="title" value="Tiles Sample"/>
+ <put-attribute name="header" value=".header"/>
+ <put-attribute name="body" value=".bodyp"/>
+ </definition>
+
+ <definition name="tilesWorks" extends="fooLayout">
+ <put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/>
+ <put-attribute name="body" value="/WEB-INF/tiles/body.jsp"/>
+ </definition>
+
+</tiles-definitions></pre>
+</div></div></li></ol><h2 id="TilesPlugin-Example">Example</h2><p>This example
shows a Tiles layout page using Struts tags:</p><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[
+<%@ taglib uri="http://tiles.apache.org/tags-tiles"
prefix="tiles" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<%-- Show usage; Used in Header --%>
+<tiles:importAttribute name="title" scope="request"/>
+<html>
+ <head><title>Struts2 Showcase - <tiles:getAsString
name="title"/></title></head>
+<body>
+ <tiles:insertAttribute name="header"/>
+ <tiles:insertAttribute name="body"/>
+ <p>Notice that this is a layout made in JSP</p>
+</body>
+</html>
+]]></script>
+</div></div>Please check <a shape="rect" class="external-link"
href="https://github.com/apache/struts-examples/tree/master/tiles"
rel="nofollow">tiles</a> example in <a shape="rect"
class="external-link"
href="https://github.com/apache/struts-examples/tree/master/tiles"
rel="nofollow">struts-examples</a> project.<h2
id="TilesPlugin-Settings">Settings</h2><p>This plugin does inherits settings
from <a shape="rect" class="external-link"
href="http://tiles.apache.org/config-reference.html">Tiles
configuration</a>.</p><h2
id="TilesPlugin-Installation">Installation</h2><p>This plugin can be installed
by copying the plugin jar into your application's <code>/WEB-INF/lib</code>
directory. No other files need to be copied or created.</p></div>
+ </div>
+
+ <div class="tabletitle">
+ Children
+ <span class="smalltext" id="show" style="display: inline;">
+ <a href="javascript:showChildren()">Show Children</a></span>
+ <span class="smalltext" id="hide" style="display: none;">
+ <a href="javascript:hideChildren()">Hide Children</a></span>
+ </div>
+ <div class="greybox" id="children" style="display: none;">
+ $page.link($child)
+ <span class="smalltext">(Apache Struts 2
Documentation)</span>
+ <br>
+ </div>
+
+ </div>
+</div>
+<div class="footer">
+ Generated by CXF SiteExporter
+</div>
+</body>
+</html>
Modified: websites/production/struts/content/docs/tiles-use.html
==============================================================================
--- websites/production/struts/content/docs/tiles-use.html (original)
+++ websites/production/struts/content/docs/tiles-use.html Mon Feb 29 19:38:05
2016
@@ -91,7 +91,7 @@ under the License.
<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="guides.html">Guides</a> > <a
href="plugin-developers-guide.html">Plugin Developers
Guide</a> > <a href="tiles-2-plugin.html">Tiles 2
Plugin</a> > <a href="tiles-use.html">Tiles Use</a>
+ <a href="home.html">Home</a> > <a
href="guides.html">Guides</a> > <a
href="plugin-developers-guide.html">Plugin Developers
Guide</a> > <a href="tiles-plugin.html">Tiles
Plugin</a> > <a href="tiles-use.html">Tiles Use</a>
</td>
<td align="right" valign="middle" nowrap>
<form name="search" action="https://www.google.com/search"
method="get">
Modified: websites/production/struts/content/docs/tutoriallesson06.html
==============================================================================
--- websites/production/struts/content/docs/tutoriallesson06.html (original)
+++ websites/production/struts/content/docs/tutoriallesson06.html Mon Feb 29
19:38:05 2016
@@ -144,7 +144,7 @@ under the License.
<p>Interceptors allow arbitrary code to be included in the call stack for your
action before and/or after processing the action, which can vastly simplify
your code itself and provide excellent opportunities for code reuse. Many of
the features of XWork and WebWork are implemented as interceptors and can be
applied via external configuration along with your own Interceptors in whatever
order you specify for any set of actions you define.</p>
-<p>In other words, when you access a <code>*.action</code> URL, WebWork's
<code>ServletDispatcher</code> proceeds to the invocation of the an action
object. Before it is executed, however, the invocation can be intercepted by
another object, that is hence called interceptor. To have an interceptor
executed before (or after) a given action, just configure
<code>xwork.xml</code> properly, like the example below, taken from <a
shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=TutorialLesson04-01-01&linkCreation=true&fromPageId=14155">lesson
4.1.1</a>:</p>
+<p>In other words, when you access a <code>*.action</code> URL, WebWork's
<code>ServletDispatcher</code> proceeds to the invocation of the an action
object. Before it is executed, however, the invocation can be intercepted by
another object, that is hence called interceptor. To have an interceptor
executed before (or after) a given action, just configure
<code>xwork.xml</code> properly, like the example below, taken from <a
shape="rect" class="unresolved" href="#">lesson 4.1.1</a>:</p>
<h3 id="TutorialLesson06-Interceptorconfigurationfromlesson4.1.1:">Interceptor
configuration from lesson 4.1.1:</h3>
@@ -157,7 +157,7 @@ under the License.
</action>
</pre>
</div></div>
-<p>As you can see, lesson 4.1.1's <code>formProcessing</code> Action uses the
<code>validationWorkflowStack</code>. That is an interceptor stack, which
organizes a bunch of interceptors in the order in which they are to be
executed. That stack is configured in <code>webwork-default.xml</code>, so all
we have to do to use it is declare a <code><interceptor-ref /></code>
under the action configuration or a <code><default-interceptor-ref
/></code>, under package configuration, as seen in <a shape="rect"
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Lesson+3+-+An+html+form+with+data&linkCreation=true&fromPageId=14155">lesson
3</a>'s first example:</p>
+<p>As you can see, lesson 4.1.1's <code>formProcessing</code> Action uses the
<code>validationWorkflowStack</code>. That is an interceptor stack, which
organizes a bunch of interceptors in the order in which they are to be
executed. That stack is configured in <code>webwork-default.xml</code>, so all
we have to do to use it is declare a <code><interceptor-ref /></code>
under the action configuration or a <code><default-interceptor-ref
/></code>, under package configuration, as seen in <a shape="rect"
class="unresolved" href="#">lesson 3</a>'s first example:</p>
<h3 id="TutorialLesson06-Interceptorconfigurationfromlesson3.1:">Interceptor
configuration from lesson 3.1:</h3>
@@ -256,7 +256,7 @@ under the License.
</pre>
</div></div>
<p>Since we included <code>webwork-default.xml</code> in our
<code>xwork.xml</code>, all the interceptors and stacks above are available for
us to use in our actions. Here's what these interceptors do:</p>
-<ul><li><strong>timer</strong>: clocks how long the action (including nested
interceptors and view) takes to execute;</li><li><strong>logger</strong>: logs
the action being executed;</li><li><strong>chain</strong>: makes the previous
action's properties available to the current action. Used to make action
chaining (reference: <a shape="rect" href="result-types.html">Result
Types</a>);</li><li><strong>static-params</strong>: sets the parameters defined
in <code>xwork.xml</code> onto the action. These are the <code><param
/></code> tags that are direct children of the <code><action /></code>
tag;</li><li><strong>params</strong>: sets the request (POST and GET)
parameters onto the action class. We have seen an example of this in <a
shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Lesson+3+-+An+html+form+with+data&linkCreation=true&fromPageId=14155">lesson
3</a>;</li><li><strong>model-driven</stro
ng>: if the action implements <code>ModelDriven</code>, pushes the
<code>getModel()</code> result onto the Value
Stack;</li><li><strong>component</strong>: enables and makes registered
components available to the actions. (reference: <a shape="rect"
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=IoC+%26+Components&linkCreation=true&fromPageId=14155">IoC
& Components</a>);</li><li><strong>token</strong>: checks for valid token
presence in action, prevents duplicate form
submission;</li><li><strong>token-session</strong>: same as above, but storing
the submitted data in session when handed an invalid
token;</li><li><strong>validation</strong>: performs validation using the
validators defined in {<code>Action}-validation.xml</code> (reference: <a
shape="rect" href="validation.html">Validation</a>). We've seen an example of
this in <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/cr
eatepage.action?spaceKey=WW&title=TutorialLesson04-01-01&linkCreation=true&fromPageId=14155">lesson
4.1.1</a>;</li><li><strong>workflow</strong>: calls the validate method in
your action class. If action errors created then it returns the
<code>INPUT</code> view. Good to use together with the validation interceptor
(reference: <a shape="rect"
href="validation.html">Validation</a>);</li><li><strong>servlet-config</strong>:
give access to <code>HttpServletRequest</code> and
<code>HttpServletResponse</code> (think twice before using this since this ties
you to the Servlet API);</li><li><strong>prepare</strong>: allows you to
programmatic access to your Action class before the parameters are set on
it.;</li><li><strong>conversionError</strong>: <span style="color:
red;"><em>help needed here</em></span>.</li></ul>
+<ul><li><strong>timer</strong>: clocks how long the action (including nested
interceptors and view) takes to execute;</li><li><strong>logger</strong>: logs
the action being executed;</li><li><strong>chain</strong>: makes the previous
action's properties available to the current action. Used to make action
chaining (reference: <a shape="rect" href="result-types.html">Result
Types</a>);</li><li><strong>static-params</strong>: sets the parameters defined
in <code>xwork.xml</code> onto the action. These are the <code><param
/></code> tags that are direct children of the <code><action /></code>
tag;</li><li><strong>params</strong>: sets the request (POST and GET)
parameters onto the action class. We have seen an example of this in <a
shape="rect" class="unresolved" href="#">lesson
3</a>;</li><li><strong>model-driven</strong>: if the action implements
<code>ModelDriven</code>, pushes the <code>getModel()</code> result onto the
Value Stack;</li><li><strong>component</strong>: e
nables and makes registered components available to the actions. (reference:
<a shape="rect" class="unresolved" href="#">IoC &
Components</a>);</li><li><strong>token</strong>: checks for valid token
presence in action, prevents duplicate form
submission;</li><li><strong>token-session</strong>: same as above, but storing
the submitted data in session when handed an invalid
token;</li><li><strong>validation</strong>: performs validation using the
validators defined in {<code>Action}-validation.xml</code> (reference: <a
shape="rect" href="validation.html">Validation</a>). We've seen an example of
this in <a shape="rect" class="unresolved" href="#">lesson
4.1.1</a>;</li><li><strong>workflow</strong>: calls the validate method in your
action class. If action errors created then it returns the <code>INPUT</code>
view. Good to use together with the validation interceptor (reference: <a
shape="rect"
href="validation.html">Validation</a>);</li><li><strong>servlet-config</strong>:
give ac
cess to <code>HttpServletRequest</code> and <code>HttpServletResponse</code>
(think twice before using this since this ties you to the Servlet
API);</li><li><strong>prepare</strong>: allows you to programmatic access to
your Action class before the parameters are set on
it.;</li><li><strong>conversionError</strong>: <span style="color:
red;"><em>help needed here</em></span>.</li></ul>
<h2 id="TutorialLesson06-BuildingyourownInterceptor">Building your own
Interceptor</h2>
@@ -360,10 +360,10 @@ public class GreetingAction extends Acti
<p>One other thing that interceptors can do is execute code after the action
has executed. To do that, just place code after the invocation.invoke() call.
WebWork provides an abstract class that already implements this kind of
behaviour: <code>com.opensymphony.xwork.interceptor.AroundInterceptor</code>.
Just extend it and implement the methods <code>before(ActionInvocation
invocation)</code> and <code>after(ActionInvocation dispatcher, String
result)</code>.</p>
<p>The <code>xwork.xml</code> configuration, the action class and the result
page are pretty straightforward and require no further explanation.</p>
-<blockquote><p><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=TutorialExamples&linkCreation=true&fromPageId=14155">Try
the example!</a></p></blockquote>
+<blockquote><p><a shape="rect" class="unresolved" href="#">Try the
example!</a></p></blockquote>
<hr>
-<p><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=TutorialLesson05&linkCreation=true&fromPageId=14155">Previous
Lesson</a> | <a shape="rect" href="tutorialend.html">End of
Tutorial</a></p></div>
+<p><a shape="rect" class="unresolved" href="#">Previous Lesson</a> | <a
shape="rect" href="tutorialend.html">End of Tutorial</a></p></div>
</div>
<div class="tabletitle">
Modified: websites/production/struts/content/docs/type-conversion.html
==============================================================================
--- websites/production/struts/content/docs/type-conversion.html (original)
+++ websites/production/struts/content/docs/type-conversion.html Mon Feb 29
19:38:05 2016
@@ -141,11 +141,11 @@ under the License.
<div id="ConfluenceContent"><p>Routine type conversion in the
framework is transparent. Generally, all you need to do is ensure that HTML
inputs have names that can be used in <a shape="rect" href="ognl.html">OGNL</a>
expressions. (HTML inputs are form elements and other GET/POST parameters.)</p>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884182286 {padding: 0px;}
-div.rbtoc1453884182286 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1453884182286 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773335959 {padding: 0px;}
+div.rbtoc1456773335959 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1456773335959 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884182286">
+/*]]>*/</style><div class="toc-macro rbtoc1456773335959">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect" href="#TypeConversion-BuiltinTypeConversionSupport">Built in Type
Conversion Support</a></li><li><span class="TOCOutline">2</span> <a
shape="rect" href="#TypeConversion-RelationshiptoParameterNames">Relationship
to Parameter Names</a></li><li><span class="TOCOutline">3</span> <a
shape="rect" href="#TypeConversion-CreatingaTypeConverter">Creating a Type
Converter</a></li><li><span class="TOCOutline">4</span> <a shape="rect"
href="#TypeConversion-ApplyingaTypeConvertertoanAction">Applying a Type
Converter to an Action</a></li><li><span class="TOCOutline">5</span> <a
shape="rect"
href="#TypeConversion-ApplyingaTypeConvertertoabeanormodel">Applying a Type
Converter to a bean or model</a></li><li><span class="TOCOutline">6</span> <a
shape="rect"
href="#TypeConversion-ApplyingaTypeConverterforanapplication">Applying a Type
Converter for an application</a></li><li><span class="TOCOutline">7</span> <a
shape="r
ect" href="#TypeConversion-ASimpleExample">A Simple Example</a></li><li><span
class="TOCOutline">8</span> <a shape="rect"
href="#TypeConversion-AdvancedTypeConversion">Advanced Type Conversion</a>
<ul class="toc-indentation"><li><span class="TOCOutline">8.1</span> <a
shape="rect" href="#TypeConversion-NullPropertyHandling">Null Property
Handling</a></li><li><span class="TOCOutline">8.2</span> <a shape="rect"
href="#TypeConversion-CollectionandMapSupport">Collection and Map Support</a>
<ul class="toc-indentation"><li><span class="TOCOutline">8.2.1</span> <a
shape="rect"
href="#TypeConversion-Indexingacollectionbyapropertyofthatcollection">Indexing
a collection by a property of that collection</a></li></ul>
Modified: websites/production/struts/content/docs/user-guide.html
==============================================================================
--- websites/production/struts/content/docs/user-guide.html (original)
+++ websites/production/struts/content/docs/user-guide.html Mon Feb 29 19:38:05
2016
@@ -127,23 +127,23 @@ under the License.
<div class="wiki-content">
<div id="ConfluenceContent"><ul class="alternate"><li><a
shape="rect" href="introduction.html">Introduction</a>
<ul class="alternate"><li>Forward into the Past !</li><li>What is
Struts 2 ?</li></ul>
- </li><li><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Basic+Concepts&linkCreation=true&fromPageId=45047">Basic
Concepts</a>
+ </li><li><a shape="rect" class="unresolved" href="#">Basic Concepts</a>
<ul class="alternate"><li>Overview</li><li>Request,
Response</li><li>Model, View, Controller (MVC)</li><li>The Struts 2
Architecture</li><li><a shape="rect" href="the-struts-2-request-flow.html">The
Struts 2 Request Flow</a></li></ul>
- </li><li><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Building+Model+Components&linkCreation=true&fromPageId=45047">Building
Model Components</a>
+ </li><li><a shape="rect" class="unresolved" href="#">Building Model
Components</a>
<ul class="alternate"><li>Overview</li></ul>
- </li><li><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Building+View+Components&linkCreation=true&fromPageId=45047">Building
View Components</a>
+ </li><li><a shape="rect" class="unresolved" href="#">Building View
Components</a>
<ul class="alternate"><li>Overview</li><li>Bundled View Components
<ul class="alternate"><li>Using JavaServer Pages
(JSP)</li><li><a shape="rect" href="using-freemarker-templates.html">Using
Freemarker Templates</a></li><li>Using Velocity
Templates</li><li>Other</li></ul>
</li><li>Internationalization</li><li>Using Tags in Your View
Components
<ul class="alternate"><li>Object-Graph Navigation Language
(OGNL)</li><li>JavaServer Pages Standard Tag Library (JSTL)</li><li>Form
tags</li><li>Non-form tags</li><li>AJAX tags</li></ul>
</li><li>Themes</li><li>Templates</li></ul>
- </li><li><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Building+Controller+Components&linkCreation=true&fromPageId=45047">Building
Controller Components</a>
+ </li><li><a shape="rect" class="unresolved" href="#">Building
Controller Components</a>
<ul class="alternate"><li>Overview</li><li>Using Plain Old Java Objects
(POJO) as Controllers</li><li>Enhanced Controllers</li><li>Error
Handling</li><li>Mapping
<ul class="alternate"><li>Using the Default Action
Mapping</li><li>Using Wildcards in Action Mapping</li></ul>
</li><li>Type Conversion</li><li>Action
Population</li><li>Interceptors</li><li>Validating the Controllers
<ul class="alternate"><li>Validator Types</li><li>Built-in
Validators</li></ul>
</li></ul>
- </li><li><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Configuration&linkCreation=true&fromPageId=45047">Configuration</a>
+ </li><li><a shape="rect" class="unresolved" href="#">Configuration</a>
<ul class="alternate"><li>Overview</li><li>Configuration by Convention
<ul class="alternate"><li>Zero Configuration: No More
XML</li><li>Using Annotations for Configuration</li></ul>
</li><li>The Configuration Files
Modified:
websites/production/struts/content/docs/using-freemarker-templates.html
==============================================================================
--- websites/production/struts/content/docs/using-freemarker-templates.html
(original)
+++ websites/production/struts/content/docs/using-freemarker-templates.html Mon
Feb 29 19:38:05 2016
@@ -141,11 +141,11 @@ under the License.
<div id="ConfluenceContent"><p><a shape="rect"
class="external-link" href="http://freemarker.sourceforge.net/"
rel="nofollow">FreeMarker</a> is a Java-based template engine that is a great
alternative to <a shape="rect" href="jsp.html">JSP</a>. FreeMarker is ideal for
situations where your action results can possibly be loaded from outside a
Servlet container. For example, if you wished to support plugins in your
application, you might wish to use FreeMarker so that the plugins could provide
the entire action class and view in a single jar that is loaded from the
classloader.</p>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884436781 {padding: 0px;}
-div.rbtoc1453884436781 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1453884436781 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773616597 {padding: 0px;}
+div.rbtoc1456773616597 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1456773616597 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1453884436781">
+/*]]>*/</style><div class="toc-macro rbtoc1456773616597">
<ul class="toc-indentation"><li><a shape="rect"
href="#UsingFreemarkerTemplates-Configureyouractiontousethe"freemarker"resulttype">Configure
your action to use the "freemarker" result type</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-Usingproperties">Using
properties</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-Servlet/JSPScopedObjects">Servlet / JSP Scoped
Objects</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#UsingFreemarkerTemplates-ApplicationScopeAttribute">Application Scope
Attribute</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-SessionScopeAttribute">Session Scope
Attribute</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-RequestScopeAttribute">Request Scope
Attribute</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-RequestParameter">Request
Parameter</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-Contextparameter">Context
parameter</a></li></ul>
</li><li><a shape="rect"
href="#UsingFreemarkerTemplates-TemplateLoading">Template
Loading</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-VariableResolution">Variable
Resolution</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-FreeMarkerconfiguration">FreeMarker
configuration</a></li><li><a shape="rect"
href="#UsingFreemarkerTemplates-Tags">Tags</a>
Modified: websites/production/struts/content/docs/validation.html
==============================================================================
--- websites/production/struts/content/docs/validation.html (original)
+++ websites/production/struts/content/docs/validation.html Mon Feb 29 19:38:05
2016
@@ -139,11 +139,11 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
<div id="ConfluenceContent"><p>Struts 2 validation is configured
via XML or annotations. Manual validation in the action is also possible, and
may be combined with XML and annotation-driven validation.</p><p>Validation
also depends on both the <code>validation</code> and <code>workflow</code>
interceptors (both are included in the default interceptor stack). The
<code>validation</code> interceptor does the validation itself and creates a
list of field-specific errors. The <code>workflow</code> interceptor checks for
the presence of validation errors: if any are found, it returns the "input"
result (by default), taking the user back to the form which contained the
validation errors.</p><p>If we're using the default settings <em>and</em> our
action doesn't have an "input" result defined <em>and</em> there are validation
(or, incidentally, type conversion) errors, we'll get an error message back
telling us there's no "input" result defined for the action.</p><p><strong>CONT
ENTS</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1453884324955 {padding: 0px;}
-div.rbtoc1453884324955 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1453884324955 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1456773511211 {padding: 0px;}
+div.rbtoc1456773511211 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1456773511211 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1453884324955">
+/*]]>*/</style></p><div class="toc-macro rbtoc1456773511211">
<ul class="toc-indentation"><li><span class="TOCOutline">1</span> <a
shape="rect" href="#Validation-UsingAnnotations">Using
Annotations</a></li><li><span class="TOCOutline">2</span> <a shape="rect"
href="#Validation-BeanValidation">Bean Validation</a></li><li><span
class="TOCOutline">3</span> <a shape="rect"
href="#Validation-Examples">Examples</a></li><li><span
class="TOCOutline">4</span> <a shape="rect"
href="#Validation-BundledValidators">Bundled Validators</a></li><li><span
class="TOCOutline">5</span> <a shape="rect"
href="#Validation-RegisteringValidators">Registering
Validators</a></li><li><span class="TOCOutline">6</span> <a shape="rect"
href="#Validation-TurningonValidation">Turning on Validation</a></li><li><span
class="TOCOutline">7</span> <a shape="rect"
href="#Validation-ValidatorScopes">Validator Scopes</a>
<ul class="toc-indentation"><li><span class="TOCOutline">7.1</span> <a
shape="rect" href="#Validation-Notes">Notes</a></li></ul>
</li><li><span class="TOCOutline">8</span> <a shape="rect"
href="#Validation-DefiningValidationRules">Defining Validation
Rules</a></li><li><span class="TOCOutline">9</span> <a shape="rect"
href="#Validation-LocalizingandParameterizingMessages">Localizing and
Parameterizing Messages</a></li><li><span class="TOCOutline">10</span> <a
shape="rect" href="#Validation-ValidatorFlavor">Validator
Flavor</a></li><li><span class="TOCOutline">11</span> <a shape="rect"
href="#Validation-Non-FieldValidatorVsField-Validatorvalidatortypes">Non-Field
Validator Vs Field-Validator</a></li><li><span class="TOCOutline">12</span> <a
shape="rect" href="#Validation-Short-CircuitingValidator">Short-Circuiting
Validator</a></li><li><span class="TOCOutline">13</span> <a shape="rect"
href="#Validation-HowValidatorsofanActionareFound">How Validators of an Action
are Found</a></li><li><span class="TOCOutline">14</span> <a shape="rect"
href="#Validation-Writingcustomvalidators">Writing custom validators</a></li>
<li><span class="TOCOutline">15</span> <a shape="rect"
href="#Validation-Resources">Resources</a></li><li><span
class="TOCOutline">16</span> <a shape="rect" href="#Validation-Next:">Next:
Localization</a></li></ul>
Modified: websites/production/struts/content/docs/webxml.html
==============================================================================
--- websites/production/struts/content/docs/webxml.html (original)
+++ websites/production/struts/content/docs/webxml.html Mon Feb 29 19:38:05 2016
@@ -195,7 +195,7 @@ under the License.
</div></div><h2
id="web.xml-CustomFileManagerandFileManagerFactoryimplementations">Custom
FileManager and FileManagerFactory implementations</h2><p>If there is a need to
support an App Server's specific file system (eg. VFS in JBoss), you can
implement your own version of FileManager. But it must be registered at "the
beginning" to support bootstrap of the whole framework.</p><p>To register your
own FileManger you can do it with <init-param/> as below:</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;"><filter>
<filter-name>struts2</filter-name>
-
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
+
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.fileManager</param-name>
<param-value>com.company.MyFileManager</param-value>
@@ -212,7 +212,16 @@ under the License.
</init-param>
</filter>
</pre>
-</div></div><p>Take a look on default implementations -
DefaultFileManager.java and DefaultFileManagerFactory.java to understand how
and why.</p></div>
+</div></div><p>Take a look on default implementations -
DefaultFileManager.java and DefaultFileManagerFactory.java to understand how
and why.</p><h2 id="web.xml-Customconfigurationprovider">Custom configuration
provider</h2><p>It is possible to use your
custom <code>ConfigurationProvider</code> to programmatically configure
your application. To do this use <code>configProviders</code> (it can
be a comma-separated list of class
names) <code><init-param/></code> as below:</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;"><filter>
+ <filter-name>struts2</filter-name>
+
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
+ <init-param>
+ <param-name>configProviders</param-name>
+
<param-value>com.company.MyConfigurationProvider</param-value>
+ </init-param>
+</filter></pre>
+</div></div><p>See <a shape="rect"
href="configuration-provider-configuration.html">Configuration Provider &
Configuration</a> for more details.</p></div>
</div>
Modified:
websites/production/struts/content/docs/what-are-some-of-the-frameworks-best-features.html
==============================================================================
---
websites/production/struts/content/docs/what-are-some-of-the-frameworks-best-features.html
(original)
+++
websites/production/struts/content/docs/what-are-some-of-the-frameworks-best-features.html
Mon Feb 29 19:38:05 2016
@@ -129,15 +129,15 @@ under the License.
<p>Key features of the framework include: </p>
<h3 id="Whataresomeoftheframework'sbestfeatures-Core">Core </h3>
-<ul><li>Pluggable framework <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=architecture&linkCreation=true&fromPageId=13921">architecture</a>
that allows request lifecycles to be customized for each
action.</li><li>Flexible <a shape="rect" href="validation.html">validation</a>
framework that allows validation rules to be decoupled from action
code.</li><li>Hierarchical approach to <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=internationalization&linkCreation=true&fromPageId=13921">internationalization</a>
that simplifies localizing applications.</li><li>Automatic <a shape="rect"
href="type-conversion.html">type conversion</a> that transparently maps values
from HTTP to native Java data objects, solving one of the most tedious efforts
when creating web applications.</li><li>Integrated <a shape="rect"
href="dependency-
injection.html">dependency injection</a> engine that manages component
lifecycle and dependencies.</li><li>Modular <a shape="rect"
href="configuration-files.html">configuration files</a> that use packages and
namespaces to simplify managing large projects with hundreds of
actions.</li><li><a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=J2SE+5+Support&linkCreation=true&fromPageId=13921">Java
5 annotations</a> that reduce configuration overhead. (Java 1.4 is the minimum
platform.)</li></ul>
+<ul><li>Pluggable framework <a shape="rect" class="unresolved"
href="#">architecture</a> that allows request lifecycles to be customized for
each action.</li><li>Flexible <a shape="rect"
href="validation.html">validation</a> framework that allows validation rules to
be decoupled from action code.</li><li>Hierarchical approach to <a shape="rect"
class="unresolved" href="#">internationalization</a> that simplifies localizing
applications.</li><li>Automatic <a shape="rect"
href="type-conversion.html">type conversion</a> that transparently maps values
from HTTP to native Java data objects, solving one of the most tedious efforts
when creating web applications.</li><li>Integrated <a shape="rect"
href="dependency-injection.html">dependency injection</a> engine that manages
component lifecycle and dependencies.</li><li>Modular <a shape="rect"
href="configuration-files.html">configuration files</a> that use packages and
namespaces to simplify managing large projects with hundreds of actions
.</li><li><a shape="rect" class="unresolved" href="#">Java 5 annotations</a>
that reduce configuration overhead. (Java 1.4 is the minimum
platform.)</li></ul>
<h3 id="Whataresomeoftheframework'sbestfeatures-View">View </h3>
-<ul><li>Reusable user interface <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=tags&linkCreation=true&fromPageId=13921">tags</a>
that allow for easy component-oriented development using <a shape="rect"
href="themes-and-templates.html">themes and templates</a>. Bundled tags ranges
from simple text fields to advanced tags like date pickers and tree
views.</li><li>JSTL-compatible expression language (<a shape="rect"
href="ognl.html">OGNL</a>) that exposes properties on multiple objects as if
they were a single JavaBean.</li><li>Pluggable <a shape="rect"
href="result-types.html">Result Types</a> that support multiple view
technologies, including <a shape="rect" href="jsp.html">JSP</a>, <a
shape="rect" href="freemarker.html">FreeMarker</a>, <a shape="rect"
href="velocity.html">Velocity</a>, PDF, and <a shape="rect"
href="jasperreports-tutorial.html">JasperReports</a>.</li><li>Optional <a
shape="rect" href
="ajax-theme.html">AJAX theme</a> that simplifes creating <a shape="rect"
class="external-link" href="http://en.wikipedia.org/wiki/AJAX"
rel="nofollow">interactive web applications</a>.</li><li>Optional <a
shape="rect" href="interceptors.html">Interceptor</a> plugins that can execute
long-running queries in the background, prevent multiple form submissions, or
handle custom security schemes.</li></ul>
+<ul><li>Reusable user interface <a shape="rect" class="unresolved"
href="#">tags</a> that allow for easy component-oriented development using <a
shape="rect" href="themes-and-templates.html">themes and templates</a>. Bundled
tags ranges from simple text fields to advanced tags like date pickers and tree
views.</li><li>JSTL-compatible expression language (<a shape="rect"
href="ognl.html">OGNL</a>) that exposes properties on multiple objects as if
they were a single JavaBean.</li><li>Pluggable <a shape="rect"
href="result-types.html">Result Types</a> that support multiple view
technologies, including <a shape="rect" href="jsp.html">JSP</a>, <a
shape="rect" href="freemarker.html">FreeMarker</a>, <a shape="rect"
href="velocity.html">Velocity</a>, PDF, and <a shape="rect"
href="jasperreports-tutorial.html">JasperReports</a>.</li><li>Optional <a
shape="rect" href="ajax-theme.html">AJAX theme</a> that simplifes creating <a
shape="rect" class="external-link" href="http://en.wikipedia.org/wi
ki/AJAX" rel="nofollow">interactive web applications</a>.</li><li>Optional <a
shape="rect" href="interceptors.html">Interceptor</a> plugins that can execute
long-running queries in the background, prevent multiple form submissions, or
handle custom security schemes.</li></ul>
<h3 id="Whataresomeoftheframework'sbestfeatures-Other">Other</h3>
-<ul><li>Easy integration with other popular products, including <a
shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Hibernate&linkCreation=true&fromPageId=13921">Hibernate</a>,
<a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Spring&linkCreation=true&fromPageId=13921">Spring</a>,
<a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=SiteMesh&linkCreation=true&fromPageId=13921">SiteMesh</a>,
and <a shape="rect" class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=JSTL&linkCreation=true&fromPageId=13921">JSTL</a>.</li><li>Distributed
under the business-friendly <a shape="rect" class="external-link"
href="http://apache.org/licenses/LICENSE-2.0">Apache License
2.0</a>.</li></ul></div>
+<ul><li>Easy integration with other popular products, including <a
shape="rect" class="unresolved" href="#">Hibernate</a>, <a shape="rect"
class="unresolved" href="#">Spring</a>, <a shape="rect" class="unresolved"
href="#">SiteMesh</a>, and <a shape="rect" class="unresolved"
href="#">JSTL</a>.</li><li>Distributed under the business-friendly <a
shape="rect" class="external-link"
href="http://apache.org/licenses/LICENSE-2.0">Apache License
2.0</a>.</li></ul></div>
</div>
Modified: websites/production/struts/content/docs/what-is-the-actioncontext.html
==============================================================================
--- websites/production/struts/content/docs/what-is-the-actioncontext.html
(original)
+++ websites/production/struts/content/docs/what-is-the-actioncontext.html Mon
Feb 29 19:38:05 2016
@@ -191,7 +191,7 @@ ActionContext context = ActionContext.ge
<p>The darker side is that classes that depend heavily on ThreadLocal can be
diffcult to unit test. A cleaner design centralizes access to ThreadLocal
variables, so that other classes are easier to test.</p>
-<h2 id="WhatistheActionContext?-Backto">Back to <a shape="rect"
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=ds&title=FAQs">FAQs</a></h2>
+<h2 id="WhatistheActionContext?-Backto">Back to <a shape="rect"
class="unresolved" href="#">FAQs</a></h2>
<hr>
Modified: websites/production/struts/content/index.html
==============================================================================
--- websites/production/struts/content/index.html (original)
+++ websites/production/struts/content/index.html Mon Feb 29 19:38:05 2016
@@ -165,10 +165,10 @@
<div class="column col-md-4">
</div>
<div class="column col-md-4">
- <h2>Security Bulletin S2-025</h2>
+ <h2>Security Bulletin S2-026</h2>
<p>
A new security bulletin was published, please carefully read the
- <a href="announce.html#a20150826">Announcement</a>
+ <a href="/docs/s2-026.html">Announcement</a>
</p>
</div>
<div class="column col-md-4">
Modified: websites/production/struts/content/volunteers.html
==============================================================================
--- websites/production/struts/content/volunteers.html (original)
+++ websites/production/struts/content/volunteers.html Mon Feb 29 19:38:05 2016
@@ -147,6 +147,7 @@ or committee member.</p>
<li>Johannes Geppert (jogep at apache.org)</li>
<li>Christian Grobmeier (grobmeier at apache.org)</li>
<li>Christoph Nenning (cnenning at apache.org)</li>
+ <li>Greg Huber (ghuber at apache.org)</li>
</ul>
<h2 id="committers">Committers</h2>
@@ -164,7 +165,6 @@ or committee member.</p>
<li>Mathias Bogaert (pathos at apache.org)</li>
<li>John Lindal (jafl at apache.org)</li>
<li>Bruce A. Phillips (bphillips at apache.org)</li>
- <li>Greg Huber (ghuber at apache.org)</li>
<li>Aleksandr Mashchenko (amashchenko at apache.org)</li>
</ul>