You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2016/03/11 12:02:24 UTC

svn commit: r982464 [4/4] - /websites/production/struts/content/docs/

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&amp;title=Tiles+3+Result&amp;linkCreation=true&amp;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;">&lt;result-types&gt;
   &lt;result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/&gt;
 &lt;/result-types&gt;

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.
   &lt;listener-class&gt;org.apache.struts2.tiles.StrutsTilesListener&lt;/listener-class&gt;
 &lt;/listener&gt;
 </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&amp;title=Tiles+Result&amp;linkCreation=true&amp;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;">&lt;result-types&gt;
   &lt;result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/&gt;
 &lt;/result-types&gt;

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>
-            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="plugin-developers-guide.html">Plugin Developers Guide</a>&nbsp;&gt;&nbsp;<a href="tiles-plugin.html">Tiles Plugin</a>&nbsp;&gt;&nbsp;<a href="tiles-use.html">Tiles Use</a>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="plugin-developers-guide.html">Plugin Developers Guide</a>&nbsp;&gt;&nbsp;<a href="tiles-2-plugin.html">Tiles 2 Plugin</a>&nbsp;&gt;&nbsp;<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&amp;title=TutorialLesson04-01-01&amp;linkCreation=true&amp;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.
 &lt;/action&gt;
 </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>&lt;interceptor-ref /&gt;</code> under the action configuration or a <code>&lt;default-interceptor-ref /&gt;</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>&lt;interceptor-ref /&gt;</code> under the action configuration or a <code>&lt;default-interceptor-ref /&gt;</code>, under package configuration, as seen in <a shape="rect" class="createlink" href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=Lesson+3+-+An+html+form+with+data&amp;linkCreation=true&amp;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>&lt;param /&gt;</code> tags that are direct children of the <code>&lt;action /&gt;</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 &amp; 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>&lt;param /&gt;</code> tags that are direct children of the <code>&lt;action /&gt;</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&amp;title=Lesson+3+-+An+html+form+with+data&amp;linkCreation=true&amp;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&amp;title=IoC+%26+Components&amp;linkCreation=true&amp;fromPageId=14155">IoC &amp; 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&amp;title=TutorialLesson04-01-01&amp;linkCreation=true&amp;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&amp;title=TutorialExamples&amp;linkCreation=true&amp;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&amp;title=TutorialLesson05&amp;linkCreation=true&amp;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&amp;title=Basic+Concepts&amp;linkCreation=true&amp;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&amp;title=Building+Model+Components&amp;linkCreation=true&amp;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&amp;title=Building+View+Components&amp;linkCreation=true&amp;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&amp;title=Building+Controller+Components&amp;linkCreation=true&amp;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&amp;title=Configuration&amp;linkCreation=true&amp;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&quot;freemarker&quot;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>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="migration-guide.html">Migration Guide</a>&nbsp;&gt;&nbsp;<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>
+            &nbsp;
+            <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>
+            &nbsp;
+            <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>
+            &nbsp;
+            <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&#160;<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;">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;
+  &lt;artifactId&gt;struts2-core&lt;/artifactId&gt;
+  &lt;version&gt;2.3.25&lt;/version&gt;
+&lt;/dependency&gt;
+</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;">&lt;repositories&gt;
+  &lt;repository&gt;
+    &lt;id&gt;apache.nexus&lt;/id&gt;
+    &lt;name&gt;ASF Nexus Staging&lt;/name&gt;
+    &lt;url&gt;https://repository.apache.org/content/groups/staging/&lt;/url&gt;
+  &lt;/repository&gt;
+&lt;/repositories&gt;</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)">&#160;Possible XSS vulnerability in pages not using UTF-8 was fixed, read more details in&#160;<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)">&#160;Prevents possible RCE when reusing user input in tag's attributes, see more details in&#160;<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)">&#160;<code>I18NInterceptor</code> narrows selected locale to those available in JVM to reduce possibility of another XSS vulnerability, see more details in&#160;<a shape="rect" href="s2-030.html">S2-030</a></li><li>New&#160;<code>Configurationprovider</code> type was introduced -&#160;<a shape="rect" href="configuration-provider-configuration.html">ServletContextAwareConfigurationProvider</a>, see&#160;<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>&#160;isn't ignored anymore, see&#160;<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>&#160;are called only once to constructed objects., see&#160;<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&#160;<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&#160;<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&#160;<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&#160;<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&#160;<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&#160;<code>PreResultListener</code>&#160;to store messages, see&#160;<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&#160;<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>&#160;</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&amp;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&amp;title=architecture&amp;linkCreation=true&amp;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&amp;title=internationalization&amp;linkCreation=true&amp;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&amp;title=J2SE+5+Support&amp;linkCreation=true&amp;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&amp;title=tags&amp;linkCreation=true&amp;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&amp;title=Hibernate&amp;linkCreation=true&amp;fromPageId=13921">Hibernate</a>, <a shape="rect" class="createlink" href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=Spring&amp;linkCreation=true&amp;fromPageId=13921">Spring</a>, <a shape="rect" class="createlink" href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=SiteMesh&amp;linkCreation=true&amp;fromPageId=13921">SiteMesh</a>, and <a shape="rect" class="createlink" href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=JSTL&amp;linkCreation=true&amp;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&amp;title=FAQs">FAQs</a></h2>
 
 <hr>