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 Fri Mar 11
11:02:24 2016
@@ -151,7 +151,7 @@ under the License.
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</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 3 Result</a> type
definition.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+</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="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.</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>
Modified: websites/production/struts/content/docs/tiles-plugin.html
==============================================================================
--- websites/production/struts/content/docs/tiles-plugin.html (original)
+++ websites/production/struts/content/docs/tiles-plugin.html Fri Mar 11
11:02:24 2016
@@ -151,7 +151,7 @@ under the License.
<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">
+</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="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&title=Tiles+Result&linkCreation=true&fromPageId=27401">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>
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 Fri Mar 11 11:02:24
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-plugin.html">Tiles
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-2-plugin.html">Tiles 2
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 Fri Mar 11
11:02:24 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="unresolved" href="#">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="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>
<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="unresolved" href="#">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="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>
<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="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>
+<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>
<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="unresolved" href="#">Try the
example!</a></p></blockquote>
+<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>
<hr>
-<p><a shape="rect" class="unresolved" href="#">Previous Lesson</a> | <a
shape="rect" href="tutorialend.html">End of Tutorial</a></p></div>
+<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>
</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 Fri Mar 11
11:02:24 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.rbtoc1456773335959 {padding: 0px;}
-div.rbtoc1456773335959 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1456773335959 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884182286 {padding: 0px;}
+div.rbtoc1453884182286 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884182286 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1456773335959">
+/*]]>*/</style><div class="toc-macro rbtoc1453884182286">
<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 Fri Mar 11 11:02:24
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="unresolved" href="#">Basic Concepts</a>
+ </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>
<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="unresolved" href="#">Building Model
Components</a>
+ </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>
<ul class="alternate"><li>Overview</li></ul>
- </li><li><a shape="rect" class="unresolved" href="#">Building View
Components</a>
+ </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>
<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="unresolved" href="#">Building
Controller Components</a>
+ </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>
<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="unresolved" href="#">Configuration</a>
+ </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>
<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 Fri
Mar 11 11:02:24 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.rbtoc1456773616597 {padding: 0px;}
-div.rbtoc1456773616597 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456773616597 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884436781 {padding: 0px;}
+div.rbtoc1453884436781 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1453884436781 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1456773616597">
+/*]]>*/</style><div class="toc-macro rbtoc1453884436781">
<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 Fri Mar 11 11:02:24
2016
@@ -139,11 +139,11 @@ under the License.
<div class="pagecontent">
<div class="wiki-content">
<div id="ConfluenceContent"><p>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.rbtoc1456773511211 {padding: 0px;}
-div.rbtoc1456773511211 ul {list-style: none;margin-left: 0px;}
-div.rbtoc1456773511211 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1453884324955 {padding: 0px;}
+div.rbtoc1453884324955 ul {list-style: none;margin-left: 0px;}
+div.rbtoc1453884324955 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1456773511211">
+/*]]>*/</style></p><div class="toc-macro rbtoc1453884324955">
<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>
Added: websites/production/struts/content/docs/version-notes-2325.html
==============================================================================
--- websites/production/struts/content/docs/version-notes-2325.html (added)
+++ websites/production/struts/content/docs/version-notes-2325.html Fri Mar 11
11:02:24 2016
@@ -0,0 +1,168 @@
+<!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>Version Notes 2.3.25</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="migration-guide.html">Migration Guide</a> > <a
href="version-notes-2325.html">Version Notes 2.3.25</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">Version
Notes 2.3.25</div>
+
+ <div class="greynavbar" align="right" style="padding: 2px 10px;
margin: 0px;">
+ <a
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=62687305">
+ <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=62687305">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=62687305">
+ <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=62687305">Add
Page</a>
+
+ <a
href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=62687305">
+ <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=62687305">Add
News</a>
+ </div>
+ </div>
+
+ <div class="pagecontent">
+ <div class="wiki-content">
+ <div id="ConfluenceContent"><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)"> These are the notes for the Struts
2.3.25 distribution.</p><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 prior notes in this release
series, see <a shape="rect" href="version-notes-2320.html">Version Notes
2.3.20</a></p><ul><li>If you are a Maven user, you might want to get started
using the <a shape="rect" href="struts-2-maven-archetypes.html">Maven
Archetype</a>.</li><li>Another quick-start entry point is the
<strong>blank</strong> application. Rename and deploy the WAR as a starting
point for your own development.</li><li>There is huge number of examples you
can als
o use as a starting point for you application <a shape="rect"
class="external-link" href="https://github.com/apache/struts-examples"
rel="nofollow">here</a></li></ul><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>Maven Dependency</b></div><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-core</artifactId>
+ <version>2.3.25</version>
+</dependency>
+</pre>
+</div></div><p>You can also use Struts Archetype Catalog like below</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader
panelHeader pdl" style="border-bottom-width: 1px;"><b>Struts Archetype
Catalog</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: text; gutter: false; theme: Default"
style="font-size:12px;">mvn archetype:generate
-DarchetypeCatalog=http://struts.apache.org/</pre>
+</div></div><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Staging
Repository</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><repositories>
+ <repository>
+ <id>apache.nexus</id>
+ <name>ASF Nexus Staging</name>
+
<url>https://repository.apache.org/content/groups/staging/</url>
+ </repository>
+</repositories></pre>
+</div></div><h2 id="VersionNotes2.3.25-InternalChanges">Internal
Changes</h2><ul><li><img class="emoticon emoticon-warning"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png"
data-emoticon-name="warning" alt="(warning)"> Possible XSS vulnerability
in pages not using UTF-8 was fixed, read more details in <a shape="rect"
href="s2-028.html">S2-028</a></li><li><img class="emoticon emoticon-warning"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png"
data-emoticon-name="warning" alt="(warning)"> Prevents possible RCE when
reusing user input in tag's attributes, see more details in <a
shape="rect" href="s2-029.html">S2-029</a></li><li><img class="emoticon
emoticon-warning"
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/warning.png"
data-emoticon-name="warning"
alt="(warning)"> <code>I18NInterceptor</code> narrows selected locale to
those available in JVM to reduce possibility of another XSS vulnerability, see
more details in <a shape="rect"
href="s2-030.html">S2-030</a></li><li>New <code>Configurationprovider</code>
type was introduced - <a shape="rect"
href="configuration-provider-configuration.html">ServletContextAwareConfigurationProvider</a>,
see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4410">WW-4410</a></li><li>Setting
status code in <code>HttpHeaders</code> isn't ignored anymore,
see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4545">WW-4545</a></li><li>Spring
<code>BeanPostProcessor(s)</code> are called only once to constructed
objects., see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4554">WW-4554</a></li><li>OGNL
was upgraded to vers
ion 3.0.13, see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4562">WW-4562</a></li><li>Tiles
2 Plugin was upgraded to latest available Tiles 2 version, see <a
shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4568">WW-4568</a></li><li>A
dedicated assembly with minimal set of jars was defined, see <a
shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4570">WW-4570</a></li><li>Struts2
Rest plugin properly handles JSESSIONID with DMI, see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4585">WW-4585</a></li><li>Improved
the Struts2 Rest plugin to honor Accept header, see <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/WW-4588">WW-4588</a></li><li><code>MessageStoreInterceptor</code>
was refactored to use <code>PreResultListener</code> to store
messages, see <a shape="rect" cl
ass="external-link"
href="https://issues.apache.org/jira/browse/WW-4605">WW-4605</a></li><li>A new
annotation was added to support configuring Tiles -
<code>@TilesDefinition</code>, see <a shape="rect" class="external-link"
href="https://issues.apache.org/jira/browse/WW-4606">WW-4606</a></li><li>and
many other small improvements, please see the release
notes</li></ul><p> </p><div class="confluence-information-macro
confluence-information-macro-note"><span class="aui-icon aui-icon-small
aui-iconfont-warning confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This release contains fix related
to <a shape="rect" href="s2-028.html">S2-028</a>, <a shape="rect"
href="s2-029.html">S2-029</a> and <a shape="rect" href="s2-030.html">S2-030</a>
security bulletins, please read it carefully!</p></div></div><h3
id="VersionNotes2.3.25-IssueDetail">Issue Detail</h3><ul><li><a shape="rect"
class="external-link" href="https://issues.apache.org/jira/se
cure/ReleaseNote.jspa?version=12333842&projectId=12311041">JIRA Release
Notes 2.3.25</a></li></ul><h3 id="VersionNotes2.3.25-IssueList">Issue
List</h3><ul><li><a shape="rect" class="external-link"
href="https://issues.apache.org/jira/issues/?filter=12326872">Struts 2.3.20
DONE</a></li><li><a shape="rect" class="external-link"
href="https://issues.apache.org/jira/issues/?filter=12318399">Struts 2.3.x
TODO</a></li></ul><h3 id="VersionNotes2.3.25-Otherresources">Other
resources</h3><ul><li><a shape="rect" class="external-link"
href="http://www.mail-archive.com/commits%40struts.apache.org/"
rel="nofollow">Commit Logs</a></li><li><a shape="rect" class="external-link"
href="https://git-wip-us.apache.org/repos/asf?p=struts.git;a=tree;h=refs/heads/develop;hb=develop">Source
Code Repository</a></li></ul><div><span style="font-size: 24.0px;line-height:
30.0px;"><br clear="none"></span></div><div><span style="font-size:
24.0px;line-height: 30.0px;background-color: rgb(245,245,245);"><br cl
ear="none"></span></div></div>
+ </div>
+
+
+ </div>
+</div>
+<div class="footer">
+ Generated by CXF SiteExporter
+</div>
+</body>
+</html>
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
Fri Mar 11 11:02:24 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="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>
+<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>
<h3 id="Whataresomeoftheframework'sbestfeatures-View">View </h3>
-<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>
+<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>
<h3 id="Whataresomeoftheframework'sbestfeatures-Other">Other</h3>
-<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>
+<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>
</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 Fri
Mar 11 11:02:24 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="unresolved" href="#">FAQs</a></h2>
+<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>
<hr>