Updates exported docs

Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/b16cc4ef
Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/b16cc4ef
Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/b16cc4ef

Branch: refs/heads/asf-site
Commit: b16cc4ef7f8c59e521d2823531843a6aa133fbfb
Parents: 2971311
Author: Lukasz Lenart <lukaszlen...@apache.org>
Authored: Tue Sep 5 15:19:44 2017 +0200
Committer: Lukasz Lenart <lukaszlen...@apache.org>
Committed: Tue Sep 5 15:19:44 2017 +0200

----------------------------------------------------------------------
 content/docs/a.html                             |  31 +-
 content/docs/action-chaining.html               |  39 +-
 content/docs/action.html                        |   8 +-
 content/docs/actionerror.html                   |   2 +-
 content/docs/actionmapper.html                  |  93 +---
 content/docs/actionmessage.html                 |   2 +-
 content/docs/after-annotation.html              |   2 +-
 content/docs/ajax-validation.html               |  71 +--
 content/docs/alias-interceptor.html             |   2 +-
 content/docs/annotationworkflowinterceptor.html |   6 +-
 content/docs/append.html                        |   4 +-
 content/docs/basic-validation.html              | 115 +----
 content/docs/bean.html                          |   2 +-
 content/docs/before-annotation.html             |   2 +-
 content/docs/beforeresult-annotation.html       |   2 +-
 content/docs/bind.html                          |  44 +-
 content/docs/chain-result.html                  |   2 +-
 content/docs/checkbox.html                      |   2 +-
 content/docs/checkboxlist.html                  |   2 +-
 content/docs/client-validation.html             | 116 +----
 content/docs/combobox.html                      |   2 +-
 content/docs/component.html                     |   2 +-
 content/docs/conditionalvisitor-validator.html  |   2 +-
 content/docs/conversion-annotation.html         |   2 +-
 content/docs/conversion-error-interceptor.html  |   2 +-
 content/docs/conversion-validator.html          |  10 +-
 ...onversionerrorfieldvalidator-annotation.html |   2 +-
 content/docs/cookie-interceptor.html            |   2 +-
 content/docs/cookieprovider-interceptor.html    |   2 +-
 content/docs/create-session-interceptor.html    |   2 +-
 content/docs/createifnull-annotation.html       |   2 +-
 content/docs/crud-demo-i.html                   | 181 +++----
 content/docs/cssxhtml-head-template.html        |   4 +-
 content/docs/cssxhtml-theme.html                | 235 +--------
 content/docs/customvalidator-annotation.html    |   2 +-
 content/docs/date-validator.html                |   2 +-
 content/docs/date.html                          |   2 +-
 .../daterangefieldvalidator-annotation.html     |   2 +-
 content/docs/default-workflow-interceptor.html  |   2 +-
 content/docs/dispatcher-result.html             |   2 +-
 content/docs/dojo-anchor.html                   |  44 +-
 content/docs/dojo-submit.html                   |  50 +-
 content/docs/double-validator.html              |   2 +-
 .../doublerangefieldvalidator-annotation.html   |   2 +-
 content/docs/doubleselect.html                  |   2 +-
 content/docs/dwr-plugin.html                    |  31 +-
 content/docs/element-annotation.html            |   2 +-
 content/docs/else.html                          |   2 +-
 content/docs/elseif.html                        |   2 +-
 content/docs/email-validator.html               |   2 +-
 content/docs/emailvalidator-annotation.html     |   2 +-
 content/docs/exception-interceptor.html         |   2 +-
 content/docs/execute-and-wait-interceptor.html  |   2 +-
 content/docs/expression-validator.html          |   2 +-
 .../docs/expressionvalidator-annotation.html    |   2 +-
 content/docs/fielderror.html                    |   2 +-
 content/docs/fieldexpression-validator.html     |   2 +-
 .../fieldexpressionvalidator-annotation.html    |   2 +-
 content/docs/file-upload-interceptor.html       |   8 +-
 content/docs/file-upload.html                   |  90 +---
 content/docs/file.html                          |   2 +-
 content/docs/form-tags.html                     | 121 +----
 content/docs/form.html                          |   2 +-
 content/docs/freemarker-result.html             |  18 +-
 content/docs/freemarker.html                    | 107 +---
 content/docs/generator.html                     |   2 +-
 content/docs/head.html                          |   2 +-
 content/docs/hidden.html                        |   2 +-
 content/docs/httpheader-result.html             |   2 +-
 content/docs/i18n-interceptor.html              |  20 +-
 content/docs/i18n.html                          |   2 +-
 content/docs/if.html                            |  32 +-
 content/docs/include.html                       |   4 +-
 content/docs/inputconfig-annotation.html        |   2 +-
 content/docs/inputtransferselect.html           |   2 +-
 content/docs/int-validator.html                 |   2 +-
 content/docs/interceptors.html                  | 498 +------------------
 .../docs/intrangefieldvalidator-annotation.html |   2 +-
 content/docs/iterator.html                      |  14 +-
 content/docs/jasperreports-plugin.html          |  76 +--
 content/docs/key-annotation.html                |   2 +-
 content/docs/keyproperty-annotation.html        |   2 +-
 content/docs/label.html                         |   4 +-
 content/docs/localization.html                  |  63 +--
 content/docs/logger-interceptor.html            |   2 +-
 content/docs/merge.html                         |   4 +-
 content/docs/message-store-interceptor.html     |  28 +-
 content/docs/migration-guide.html               |   5 +-
 content/docs/model-driven-interceptor.html      |   2 +-
 content/docs/optgroup.html                      |   2 +-
 content/docs/optiontransferselect.html          |   2 +-
 content/docs/param.html                         |   2 +-
 content/docs/parameter-filter-interceptor.html  |   2 +-
 content/docs/parameters-interceptor.html        |  32 +-
 content/docs/password.html                      |   4 +-
 content/docs/plugins.html                       |  67 +--
 content/docs/prepare-interceptor.html           |   2 +-
 content/docs/profiling.html                     | 100 +---
 content/docs/property.html                      |   4 +-
 .../pure-javascript-client-side-validation.html |  24 +-
 content/docs/push.html                          |  16 +-
 content/docs/radio.html                         |   4 +-
 content/docs/redirect-action-result.html        |   4 +-
 content/docs/redirect-result.html               |   4 +-
 content/docs/regex-validator.html               |   2 +-
 .../docs/regexfieldvalidator-annotation.html    |   2 +-
 content/docs/required-validator.html            |   2 +-
 .../docs/requiredfieldvalidator-annotation.html |   2 +-
 content/docs/requiredstring-validator.html      |   2 +-
 .../requiredstringvalidator-annotation.html     |   2 +-
 content/docs/reset.html                         |   4 +-
 content/docs/result-annotation.html             |  39 +-
 content/docs/roles-interceptor.html             |   2 +-
 content/docs/s2-049.html                        |   4 +-
 content/docs/s2-050.html                        | 166 +++++++
 content/docs/s2-051.html                        | 138 +++++
 content/docs/s2-052.html                        | 154 ++++++
 content/docs/scope-interceptor.html             |  76 +--
 .../docs/scoped-model-driven-interceptor.html   |   2 +-
 content/docs/security-bulletins.html            |  11 +-
 content/docs/select.html                        |   4 +-
 content/docs/servlet-config-interceptor.html    |   2 +-
 content/docs/set.html                           |   2 +-
 content/docs/short-validator.html               |   2 +-
 content/docs/simple-head-template.html          |   2 +-
 content/docs/sitegraph-plugin.html              |  57 +--
 content/docs/sort.html                          |   2 +-
 content/docs/static-parameters-interceptor.html |   2 +-
 content/docs/stream-result.html                 |  26 +-
 content/docs/stringlength-validator.html        |   2 +-
 .../stringlengthfieldvalidator-annotation.html  |   2 +-
 content/docs/struts-1-plugin.html               |  34 +-
 content/docs/struts-defaultxml.html             |   2 +-
 content/docs/strutsproperties.html              |   2 +-
 content/docs/strutsxml-examples.html            |   4 +-
 content/docs/subset.html                        |  12 +-
 content/docs/text.html                          |  86 +---
 content/docs/textarea.html                      |   2 +-
 content/docs/textfield.html                     |   4 +-
 content/docs/tiles-plugin.html                  |  73 +--
 content/docs/timer-interceptor.html             |   2 +-
 content/docs/token-interceptor.html             |   2 +-
 content/docs/token-session-interceptor.html     |   2 +-
 content/docs/token.html                         |   2 +-
 content/docs/type-conversion.html               | 232 ++-------
 content/docs/typeconversion-annotation.html     |   2 +-
 content/docs/updownselect.html                  |   2 +-
 content/docs/url.html                           |   4 +-
 content/docs/using-field-validators.html        | 205 +-------
 content/docs/using-non-field-validators.html    |  78 +--
 content/docs/using-visitor-field-validator.html |  64 +--
 content/docs/validation-annotation.html         |   6 +-
 content/docs/validation-interceptor.html        |   2 +-
 content/docs/validation.html                    | 316 +-----------
 .../docs/validationparameter-annotation.html    |   2 +-
 content/docs/validations-annotation.html        |  69 +--
 content/docs/version-notes-2513.html            | 169 +++++++
 content/docs/visitor-validator.html             |   2 +-
 .../docs/visitorfieldvalidator-annotation.html  |   2 +-
 content/docs/webxml.html                        |  57 +--
 content/docs/xhtml-form-template.html           |   4 +-
 content/docs/xhtml-theme.html                   | 368 +-------------
 content/docs/xsl-result.html                    |  49 +-
 163 files changed, 1166 insertions(+), 3960 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/a.html
----------------------------------------------------------------------
diff --git a/content/docs/a.html b/content/docs/a.html
index 5d215eb..5d81f53 100644
--- a/content/docs/a.html
+++ b/content/docs/a.html
@@ -34,20 +34,6 @@ under the License.
             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 src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -141,16 +127,13 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h2 id="a-Description">Description</h2>
 
-<p></p><p>
-A tag that creates a HTML &lt;a &gt;.This tag supports the same attributes as 
the "url" tag,
-including nested parameters using the "param" tag.
-</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>While this tag can be used with the <a shape="rect" 
href="simple-theme.html">simple theme</a>, <a shape="rect" 
href="xhtml-theme.html">xhtml theme</a>, and others, it is really designed to 
work best with the <a shape="rect" href="ajax-theme.html">ajax theme</a>. We 
recommend reading the <a shape="rect" href="ajax-a-template.html">ajax a 
template</a> documentation for more details.</p></div></div>
+<plain-text-body>{snippet:id=javadoc|javadoc=true|url=org.apache.struts2.components.Anchor}</plain-text-body>
+<rich-text-body>
+<p>While this tag can be used with the <a shape="rect" 
href="simple-theme.html">simple theme</a>, <a shape="rect" 
href="xhtml-theme.html">xhtml theme</a>, and others, it is really designed to 
work best with the <a shape="rect" href="ajax-theme.html">ajax theme</a>. We 
recommend reading the <a shape="rect" href="ajax-a-template.html">ajax a 
template</a> documentation for more details.</p></rich-text-body>
 
 <h2 id="a-Parameters">Parameters</h2>
 
-<p><table width="100%"><tr><td colspan="6" rowspan="1"><h4>Dynamic Attributes 
Allowed:</h4> true</td></tr><tr><td colspan="6" 
rowspan="1">&#160;</td></tr><tr><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Name</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Required</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Default</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Evaluated</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Type</h4></th><th align="left" colspan="1" rowspan="1" 
valign="top"><h4>Description</h4></th></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">accesskey</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set t
 he html accesskey attribute on rendered html element</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">action</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The action to generate the URL for, if not using 
value</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">anchor</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The anchor for this URL</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">class</td><td align="left" col
 span="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css class to use for element - it's an alias of cssClass 
attribute.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">cssClass</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css class to use for element</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">cssErrorClass</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="l
 eft" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">The css error class to use for 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">cssErrorStyle</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css error style definitions for element to 
use</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">cssStyle</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="le
 ft" colspan="1" rowspan="1" valign="top">The css style definitions for element 
to use</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">disabled</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html disabled attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">encode</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">true</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">Whether to encode parameters</td></tr><tr><td align="left" 
colspan="1" rowspan=
 "1" valign="top">errorPosition</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Define error position of form element 
(top|bottom)</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">escapeAmp</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">true</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">Specifies whether to escape ampersand (&amp;) to (&amp;amp<img 
align="middle" class="emoticon" src="null/icons/emoticons/wink.png" height="16" 
width="16" alt="" border="0"> or not</td></tr><tr><td align="left" col
 span="1" rowspan="1" valign="top">forceAddSchemeHostAndPort</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">Specifies whether to force the addition of scheme, host and port 
or not</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">href</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The URL.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">id</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" col
 span="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">HTML id attribute</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">includeContext</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">true</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">Whether actual context should be included in URL</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">includeParams</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">none</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspa
 n="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The includeParams attribute may have the value 'none', 'get' or 
'all'</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">javascriptTooltip</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">Use JavaScript to generate tooltips</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">key</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the key (name, value,
  label) for this particular component</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">label</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Label expression used for rendering an element specific 
label</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">labelSeparator</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">:</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">String that will be appended to the label</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">labelpositio
 n</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td 
align="left" colspan="1" rowspan="1" valign="top"></td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Define label position of form element (top/left)</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">method</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The method of action to use</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">name</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan=
 "1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The name to set for element</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">namespace</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The namespace to use</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">onblur</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" valign="top"> 
Set the html onblu
 r attribute on rendered html element</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">onchange</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onchange attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onclick</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onclick attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">ondblclic
 k</td><td align="left" colspan="1" rowspan="1" valign="top">false</td><td 
align="left" colspan="1" rowspan="1" valign="top"></td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html ondblclick attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onfocus</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onfocus attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onkeydown</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1"
  valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onkeydown attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onkeypress</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onkeypress attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onkeyup</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan
 ="1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">Set the html onkeyup attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmousedown</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmousedown attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmousemove</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the 
 html onmousemove attribute on rendered html element</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">onmouseout</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmouseout attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onmouseover</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmouseover attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan
 ="1" valign="top">onmouseup</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onmouseup attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">onselect</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html onselect attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">openTemplate</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align=
 "left" colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set template to use for opening the rendered 
html.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">portletMode</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The resulting portlet mode</td></tr><tr><td align="left" 
colspan="1" rowspan="1" valign="top">portletUrlType</td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan=
 "1" rowspan="1" valign="top">String</td><td align="left" colspan="1" 
rowspan="1" valign="top">Specifies if this should be a portlet render or action 
URL. Default is "render". To create an action URL, use 
"action".</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">requiredLabel</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">Boolean</td><td align="left" colspan="1" rowspan="1" 
valign="top">If set to true, the rendered element will indicate that input is 
required</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">requiredPosition</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan=
 "1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Define required position of required form element 
(left|right)</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">scheme</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set scheme attribute</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">style</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The css style definitions for element to use - it's an alias of 
 cssStyle attribute.</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">tabindex</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html tabindex attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">template</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The template (other than default) to use for rendering the 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">templateDir</t
 d><td align="left" colspan="1" rowspan="1" valign="top">false</td><td 
align="left" colspan="1" rowspan="1" valign="top"></td><td align="left" 
colspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The template directory.</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">theme</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The theme (other than default) to use for rendering the 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">title</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" c
 olspan="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the html title attribute on rendered html 
element</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">tooltip</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Set the tooltip of this particular component</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">tooltipConfig</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top"></td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="
 left" colspan="1" rowspan="1" valign="top">Deprecated. Use individual tooltip 
configuration attributes instead.</td></tr><tr><td align="left" colspan="1" 
rowspan="1" valign="top">tooltipCssClass</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">StrutsTTClassic</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">CSS class applied to JavaScrip tooltips</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">tooltipDelay</td><td 
align="left" colspan="1" rowspan="1" valign="top">false</td><td align="left" 
colspan="1" rowspan="1" valign="top">Classic</td><td align="left" colspan="1" 
rowspan="1" valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Delay in milliseconds, before showing Ja
 vaScript tooltips </td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">tooltipIconPath</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">Icon path used for image that will have the 
tooltip</td></tr><tr><td align="left" colspan="1" rowspan="1" 
valign="top">value</td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The target value to use, if not using action</td></tr><tr><td 
align="left" colspan="1" rowspan="1" valign="top">windowState</td><td 
align="left" colsp
 an="1" rowspan="1" valign="top">false</td><td align="left" colspan="1" 
rowspan="1" valign="top"></td><td align="left" colspan="1" rowspan="1" 
valign="top">false</td><td align="left" colspan="1" rowspan="1" 
valign="top">String</td><td align="left" colspan="1" rowspan="1" 
valign="top">The resulting portlet window state</td></tr></table></p>
+<plain-text-body>{snippet:id=tagattributes|javadoc=false|url=struts2-tags/a.html}</plain-text-body>
 
 <h2 id="a-Usage">Usage</h2>
 
@@ -158,8 +141,7 @@ including nested parameters using the "param" tag.
 
 <p>&#160;<br clear="none">
 If you want to use additional parameters in your s:a the best practice is to 
use a s:url to create your url and then leverage this url into your s:a tag. 
This is done by creating a s:url and specifying an id attribute.. like 
"testUrlId" in this example. Then in the s:a tag reference this id in the href 
attribute via " %{testUrlId}"</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: html; gutter: false; theme: Default" 
style="font-size:12px;">
+<parameter ac:name="">html</parameter><plain-text-body>
 &lt;s:url var="testUrlId" namespace="/subscriber" action="customField" 
method="delete"&gt;
     &lt;s:param name="customFieldDefinition.id" value="${id}"/&gt;
 &lt;/s:url&gt;
@@ -168,8 +150,7 @@ If you want to use additional parameters in your s:a the 
best practice is to use
 &lt;/s:a&gt;
 
 &lt;img xsrc="&lt;s:url value="/images/delete.gif"/&gt;" 
border="none"/&gt;&lt;s:a&gt;&lt;img xsrc="&lt;s:url 
value="/images/delete.gif"/&gt;" border="none"/&gt;&lt;/s:a&gt;
-</pre>
-</div></div></div>
+</plain-text-body></div>
         </div>
 
         

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/action-chaining.html
----------------------------------------------------------------------
diff --git a/content/docs/action-chaining.html 
b/content/docs/action-chaining.html
index a0fcfa6..3a489af 100644
--- a/content/docs/action-chaining.html
+++ b/content/docs/action-chaining.html
@@ -34,20 +34,6 @@ under the License.
             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 src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -139,30 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>The framework provides the ability 
to chain multiple actions into a defined sequence or workflow. This feature 
works by applying a <a shape="rect" href="chain-result.html">Chain Result</a> 
to a given Action, and intercepting its target Action's invocation with a <a 
shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Don't Try This at Home</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>As a rule, Action Chaining is not 
recommended. First explore other options, such as the <a shape="rect" 
href="redirect-after-post.html">Redirect After Post</a> 
technique.</p></div></div><h2 id="ActionChaining-ChainResult">Chain 
Result</h2><p>The <a shape="rect" href="chain-result.html">Chain Result</a> is 
a result type that invokes an Action w
 ith its own Interceptor Stack and Result. This Interceptor allows an Action to 
forward requests to a target Action, while propagating the state of the source 
Action. Below is an example of how to define this sequence.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;package name=&quot;public&quot; extends=&quot;struts-default&quot;&gt;
-    &lt;!-- Chain creatAccount to login, using the default parameter --&gt;
-    &lt;action name=&quot;createAccount&quot; class=&quot;...&quot;&gt;
-        &lt;result type=&quot;chain&quot;&gt;login&lt;/result&gt;
-    &lt;/action&gt;
-
-    &lt;action name=&quot;login&quot; class=&quot;...&quot;&gt;
-        &lt;!-- Chain to another namespace --&gt;
-        &lt;result type=&quot;chain&quot;&gt;
-            &lt;param name=&quot;actionName&quot;&gt;dashboard&lt;/param&gt;
-            &lt;param name=&quot;namespace&quot;&gt;/secure&lt;/param&gt;
-        &lt;/result&gt;
-    &lt;/action&gt;
-&lt;/package&gt;
-
-&lt;package name=&quot;secure&quot; extends=&quot;struts-default&quot; 
namespace=&quot;/secure&quot;&gt;
-    &lt;action name=&quot;dashboard&quot; class=&quot;...&quot;&gt;
-        &lt;result&gt;dashboard.jsp&lt;/result&gt;
-    &lt;/action&gt;
-&lt;/package&gt;
-]]></script>
-</div></div><p>Another action mapping in the same namespace (or the default "" 
namespace) can be executed after this action mapping (see <a shape="rect" 
href="configuration-files.html">Configuration Files</a>). An optional 
"namespace" parameter may also be added to specify an action in a different 
namespace.</p><h2 id="ActionChaining-ChainingInterceptor">Chaining 
Interceptor</h2><p>If you need to copy the properties from your previous 
Actions in the chain to the current action, you should apply the <a 
shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>. The 
Interceptor will copy the original parameters from the request, and the 
ValueStack is passed in to the target Action. The source Action is remembered 
by the ValueStack, allowing the target Action to access the properties of the 
preceding Action(s) using the ValueStack, and also makes these properties 
available to the final result of the chain, such as the JSP or Velocity 
page.</p><p>One common use of Action cha
 ining is to provide lookup lists (like for a dropdown list of states). Since 
these Actions get put on the ValueStack, their properties will be available in 
the view. This functionality can also be done using the ActionTag to execute an 
Action from the display page. You may also use the <a shape="rect" 
href="redirect-action-result.html">Redirect Action Result</a> to accomplish 
this.</p><h3 id="ActionChaining-Usewithcare">Use with care</h3><p>Experience 
shows that chaining should be used with care. If chaining is overused, an 
application can turn into "spaghetti code". Actions should be treated as a <a 
shape="rect" class="external-link" 
href="http://martinfowler.com/eaaCatalog/transactionScript.html"; 
rel="nofollow">Transaction Script</a>, rather than as methods in a <a 
shape="rect" class="external-link" 
href="http://msdn2.microsoft.com/en-us/library/aa291571(VS.71).aspx" 
rel="nofollow">Business Facade</a>. Be sure to ask yourself why you need to 
chain from one Action to another. Is a 
 navigational issue, or could the logic in Action2 be pushed back to a support 
class or business facade so that Action1 can call it too?</p><p>Ideally, Action 
classes should be as short as possible. All the core logic should be pushed 
back to a support class or a business facade, so that Actions only call 
methods. Actions are best used as adapters, rather than as a class where coding 
logic is defined.</p><h2 id="ActionChaining-Next:">Next: <a shape="rect" 
href="result-types.html">Result Types</a></h2></div>
+            <div id="ConfluenceContent"><p>The framework provides the ability 
to chain multiple actions into a defined sequence or workflow. This feature 
works by applying a <a shape="rect" href="chain-result.html">Chain Result</a> 
to a given Action, and intercepting its target Action's invocation with a <a 
shape="rect" href="chaining-interceptor.html">Chaining 
Interceptor</a>.</p><parameter ac:name="title">Don't Try This at 
Home</parameter><rich-text-body><p>As a rule, Action Chaining is not 
recommended. First explore other options, such as the <a shape="rect" 
href="redirect-after-post.html">Redirect After Post</a> 
technique.</p></rich-text-body><h2 id="ActionChaining-ChainResult">Chain 
Result</h2><p>The <a shape="rect" href="chain-result.html">Chain Result</a> is 
a result type that invokes an Action with its own Interceptor Stack and Result. 
This Interceptor allows an Action to forward requests to a target Action, while 
propagating the state of the source Action. Below is an examp
 le of how to define this 
sequence.</p><plain-text-body>{snippet:id=example|lang=xml|javadoc=true|url=com.opensymphony.xwork2.ActionChainResult}</plain-text-body><p>Another
 action mapping in the same namespace (or the default "" namespace) can be 
executed after this action mapping (see <a shape="rect" 
href="configuration-files.html">Configuration Files</a>). An optional 
"namespace" parameter may also be added to specify an action in a different 
namespace.</p><h2 id="ActionChaining-ChainingInterceptor">Chaining 
Interceptor</h2><p>If you need to copy the properties from your previous 
Actions in the chain to the current action, you should apply the <a 
shape="rect" href="chaining-interceptor.html">Chaining Interceptor</a>. The 
Interceptor will copy the original parameters from the request, and the 
ValueStack is passed in to the target Action. The source Action is remembered 
by the ValueStack, allowing the target Action to access the properties of the 
preceding Action(s) using the ValueSt
 ack, and also makes these properties available to the final result of the 
chain, such as the JSP or Velocity page.</p><p>One common use of Action 
chaining is to provide lookup lists (like for a dropdown list of states). Since 
these Actions get put on the ValueStack, their properties will be available in 
the view. This functionality can also be done using the ActionTag to execute an 
Action from the display page. You may also use the <a shape="rect" 
href="redirect-action-result.html">Redirect Action Result</a> to accomplish 
this.</p><h3 id="ActionChaining-Usewithcare">Use with care</h3><p>Experience 
shows that chaining should be used with care. If chaining is overused, an 
application can turn into "spaghetti code". Actions should be treated as a <a 
shape="rect" class="external-link" 
href="http://martinfowler.com/eaaCatalog/transactionScript.html"; 
rel="nofollow">Transaction Script</a>, rather than as methods in a <a 
shape="rect" class="external-link" href="http://msdn2.microsoft.com/en
 -us/library/aa291571(VS.71).aspx" rel="nofollow">Business Facade</a>. Be sure 
to ask yourself why you need to chain from one Action to another. Is a 
navigational issue, or could the logic in Action2 be pushed back to a support 
class or business facade so that Action1 can call it too?</p><p>Ideally, Action 
classes should be as short as possible. All the core logic should be pushed 
back to a support class or a business facade, so that Actions only call 
methods. Actions are best used as adapters, rather than as a class where coding 
logic is defined.</p><h2 id="ActionChaining-Next:">Next: <a shape="rect" 
href="result-types.html">Result Types</a></h2></div>
         </div>
 
         

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/action.html
----------------------------------------------------------------------
diff --git a/content/docs/action.html b/content/docs/action.html
index 8ac1e84..979ae59 100644
--- a/content/docs/action.html
+++ b/content/docs/action.html
@@ -153,7 +153,7 @@ for this action in struts.xml will be ignored, 
<i>unless</i> the executeResult p
 <p>The action will not be published to the context until the whole tag is 
evaluated, meaning that inside the body of the tag, the action cannot be 
accessed, For example:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;s:action var="myAction" name="MyAction" namespace="/"&gt;
     Is "myAction" null inside the tag? &lt;s:property value="#myAction == 
null" /&gt;
 &lt;/s:action&gt;
@@ -172,7 +172,7 @@ Is "myAction" null outside the tag? false</p>
 <h2 id="action-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 public class ActionTagAction extends ActionSupport {
 
  public String execute() throws Exception {
@@ -187,7 +187,7 @@ public class ActionTagAction extends ActionSupport {
 ]]></script>
 </div></div>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;xwork&gt;
    ....
   &lt;action name=&quot;actionTagAction1&quot; 
class=&quot;tmjee.testing.ActionTagAction&quot;&gt;
@@ -201,7 +201,7 @@ public class ActionTagAction extends ActionSupport {
 ]]></script>
 </div></div>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;span&gt;The following action tag will execute result and include it in 
this page&lt;/span&gt;
 &lt;br&gt;
 &lt;s:action name=&quot;actionTagAction&quot; executeResult=&quot;true&quot; 
/&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/actionerror.html
----------------------------------------------------------------------
diff --git a/content/docs/actionerror.html b/content/docs/actionerror.html
index 7a468a0..ead91d5 100644
--- a/content/docs/actionerror.html
+++ b/content/docs/actionerror.html
@@ -154,7 +154,7 @@ strings will be html escaped by default.</p>
 <h2 id="actionerror-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
    &lt;s:actionerror /&gt;
    &lt;s:form .... &gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/actionmapper.html
----------------------------------------------------------------------
diff --git a/content/docs/actionmapper.html b/content/docs/actionmapper.html
index 92f26ec..b84fb21 100644
--- a/content/docs/actionmapper.html
+++ b/content/docs/actionmapper.html
@@ -34,20 +34,6 @@ under the License.
             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 src='https://struts.apache.org/highlighter/js/shBrushCss.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;
@@ -139,89 +125,27 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1499928310561 {padding: 0px;}
-div.rbtoc1499928310561 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1499928310561 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style></p><div class="toc-macro rbtoc1499928310561">
-<ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Description">Description</a></li><li><a shape="rect" 
href="#ActionMapper-DefaultActionMapper">DefaultActionMapper</a>
-<ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Methodprefix">Method prefix</a></li><li><a shape="rect" 
href="#ActionMapper-Actionprefix">Action prefix</a></li><li><a shape="rect" 
href="#ActionMapper-AllowedactionnameRegEx">Allowed action name 
RegEx</a></li><li><a shape="rect" 
href="#ActionMapper-AllowedmethodnameRegEx">Allowed method name 
RegEx</a></li></ul>
-</li><li><a shape="rect" href="#ActionMapper-CustomActionMapper">Custom 
ActionMapper</a></li><li><a shape="rect" 
href="#ActionMapper-CompositeActionMapper">CompositeActionMapper</a></li><li><a 
shape="rect" 
href="#ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</a></li><li><a
 shape="rect" 
href="#ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and 
ActionMapping objects</a>
-<ul class="toc-indentation"><li><a shape="rect" 
href="#ActionMapper-Customize">Customize</a></li></ul>
-</li><li><a shape="rect" 
href="#ActionMapper-Next:ActionProxy&amp;ActionProxyFactory">Next: Action Proxy 
&amp; ActionProxy Factory</a></li></ul>
-</div><h2 id="ActionMapper-Description">Description</h2><p>The ActionMapper 
interface provides a mapping between HTTP requests and action invocation 
requests and vice-versa.</p><p>When given an HttpServletRequest, the 
ActionMapper may return null if no action invocation request matches&#160;or it 
may return an {{ActionMapping}} that describes an action invocation for the 
framework to try.</p><p>The ActionMapper is not required to guarantee that the 
{{ActionMapping}} returned be a real action or otherwise&#160;ensure a valid 
request.&#160;Accordingly, most ActionMappers do not need to consult the Struts 
configuration&#160;just to determine if a request should be mapped.</p><p>Just 
as requests can be mapped from HTTP to an action invocation, the opposite is 
true as well.&#160;However, because HTTP requests (when shown in HTTP 
responses) must be in String form,&#160;a String is returned rather than an 
actual request object.</p><h2 
id="ActionMapper-DefaultActionMapper">DefaultActionMapp
 er</h2><p>Default action mapper implementation, using the standard 
<code>*.[ext]</code>&#160;(where ext&#160;usually <strong>action</strong>) 
pattern. The extension is looked up from the Struts&#160;configuration key 
{&lt;b&gt;{struts.action.extension}}.</p><p>To help with dealing with buttons 
and other related requirements, this&#160;mapper (and other {{ActionMapper}}s, 
we hope) has the ability to name a&#160;button with some predefined prefix and 
have that button name alter the&#160;execution behaviour. The four prefixes 
are:</p><ul style="list-style-type: square;"><li>Method prefix 
-&#160;<code>method:default</code></li><li>Action prefix 
-&#160;<code>action:dashboard</code></li></ul><p>In addition to these four 
prefixes, this mapper also understands the&#160;action naming pattern of 
<code>foo!bar</code>&#160;in either the extension form 
(eg:&#160;<code>foo!bar.action</code>) or in the prefix form (eg: 
<code>action:foo!bar</code>). This syntax tells&#160;this mapper to map to the 
 action named <code>foo</code>&#160;and the method <code>bar</code>.</p><h3 
id="ActionMapper-Methodprefix">Method prefix</h3><p>With method-prefix, instead 
of calling baz action's <code>execute()</code>&#160;method (by&#160;default if 
it isn't overridden in <code>struts.xml</code>&#160;to be something else), the 
baz&#160;action's <code>anotherMethod()</code>&#160;will be called. A very 
elegant way determine which&#160;button is clicked. Alternatively, one would 
have submit button set a&#160;particular value on the action when clicked, and 
the <code>execute()</code>&#160;method decides&#160;on what to do with the 
setted value depending on which button is clicked.</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;!-- START SNIPPET: method-example --&gt;
+            <div id="ConfluenceContent"><p><parameter 
ac:name="maxLevel">3</parameter><parameter 
ac:name="minLevel">2</parameter></p><h2 
id="ActionMapper-Description">Description</h2><p>The ActionMapper interface 
provides a mapping between HTTP requests and action invocation requests and 
vice-versa.</p><p>When given an HttpServletRequest, the ActionMapper may return 
null if no action invocation request matches&#160;or it may return an 
{{ActionMapping}} that describes an action invocation for the framework to 
try.</p><p>The ActionMapper is not required to guarantee that the 
{{ActionMapping}} returned be a real action or otherwise&#160;ensure a valid 
request.&#160;Accordingly, most ActionMappers do not need to consult the Struts 
configuration&#160;just to determine if a request should be mapped.</p><p>Just 
as requests can be mapped from HTTP to an action invocation, the opposite is 
true as well.&#160;However, because HTTP requests (when shown in HTTP 
responses) must be in String form,
 &#160;a String is returned rather than an actual request object.</p><h2 
id="ActionMapper-DefaultActionMapper">DefaultActionMapper</h2><p>Default action 
mapper implementation, using the standard <code>*.[ext]</code>&#160;(where 
ext&#160;usually <strong>action</strong>) pattern. The extension is looked up 
from the Struts&#160;configuration key 
{&lt;b&gt;{struts.action.extension}}.</p><p>To help with dealing with buttons 
and other related requirements, this&#160;mapper (and other {{ActionMapper}}s, 
we hope) has the ability to name a&#160;button with some predefined prefix and 
have that button name alter the&#160;execution behaviour. The four prefixes 
are:</p><ul style="list-style-type: square;"><li>Method prefix 
-&#160;<code>method:default</code></li><li>Action prefix 
-&#160;<code>action:dashboard</code></li></ul><p>In addition to these four 
prefixes, this mapper also understands the&#160;action naming pattern of 
<code>foo!bar</code>&#160;in either the extension form (eg:&#160;<code>fo
 o!bar.action</code>) or in the prefix form (eg: <code>action:foo!bar</code>). 
This syntax tells&#160;this mapper to map to the action named 
<code>foo</code>&#160;and the method <code>bar</code>.</p><h3 
id="ActionMapper-Methodprefix">Method prefix</h3><p>With method-prefix, instead 
of calling baz action's <code>execute()</code>&#160;method (by&#160;default if 
it isn't overridden in <code>struts.xml</code>&#160;to be something else), the 
baz&#160;action's <code>anotherMethod()</code>&#160;will be called. A very 
elegant way determine which&#160;button is clicked. Alternatively, one would 
have submit button set a&#160;particular value on the action when clicked, and 
the <code>execute()</code>&#160;method decides&#160;on what to do with the 
setted value depending on which button is clicked.</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;!-- START SNIPPET: 
method-example --&gt;
 &lt;s:form action="baz"&gt;
     &lt;s:textfield label="Enter your name" name="person.name"/&gt;
     &lt;s:submit value="Create person"/&gt;
     &lt;s:submit method="anotherMethod" value="Cancel"/&gt;
 &lt;/s:form&gt;
-&lt;!-- END SNIPPET: method-example --&gt;</pre>
-</div></div><h3 id="ActionMapper-Actionprefix">Action prefix</h3><p>With 
action-prefix, instead of executing baz action's 
<code>execute()</code>&#160;method (by&#160;default if it isn't overridden in 
struts.xml to be something else), the&#160;anotherAction action's 
<code>execute()</code>&#160;method (assuming again if it isn't 
overridden&#160;with something else in <code>struts.xml</code>) will be 
executed.</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;!-- START SNIPPET: action-example --&gt;
+&lt;!-- END SNIPPET: method-example --&gt;</plain-text-body><h3 
id="ActionMapper-Actionprefix">Action prefix</h3><p>With action-prefix, instead 
of executing baz action's <code>execute()</code>&#160;method (by&#160;default 
if it isn't overridden in struts.xml to be something else), 
the&#160;anotherAction action's <code>execute()</code>&#160;method (assuming 
again if it isn't overridden&#160;with something else in 
<code>struts.xml</code>) will be executed.</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;!-- START SNIPPET: 
action-example --&gt;
 &lt;s:form action="baz"&gt;
     &lt;s:textfield label="Enter your name" name="person.name"/&gt;
     &lt;s:submit value="Create person"/&gt;
     &lt;s:submit action="anotherAction" value="Cancel"/&gt;
 &lt;/s:form&gt;
-&lt;!-- END SNIPPET: action-example --&gt;</pre>
-</div></div><h3 id="ActionMapper-AllowedactionnameRegEx">Allowed action name 
RegEx</h3><p>By default the mapper will check if extracted action name matches 
provided RegEx, i.e.&#160;<code>[a-zA-Z0-9._!/\-]*</code>. You redefine this 
RegEx by defining a constant in&#160;<code>struts.xml</code> 
named&#160;<code>struts.allowed.action.names</code>. If action name doesn't 
match the RegEx a default action name will be returned which is defined 
as&#160;<code>index</code>. You can also redefine this by specifying 
constant&#160;<code>struts.default.action.name</code> 
in&#160;<code>struts.xml</code></p><h3 
id="ActionMapper-AllowedmethodnameRegEx">Allowed method name RegEx</h3><p>The 
same logic as above is used for extracted methods, the default RegEx 
<code>(</code><code>[a-zA-Z_]*[0-9]*)</code> is used to check if method is 
allowed, you can change this by setting 
constant&#160;<code>struts.allowed.method.names</code> 
in&#160;<code>struts.xml</code>. If method doesn't match the RegEx a default
  method is returned, i.e.&#160;<code>execute</code>. This can be changed by 
defining constant&#160;<code>struts.default.method.name</code> 
in&#160;<code>struts.xml</code>.</p><p>Please note that this funcionallity only 
works when&#160;<a shape="rect" 
href="https://cwiki.apache.org/confluence/display/WW/Action+Configuration#ActionConfiguration-DynamicMethodInvocation";>Dynamic
 Method Invocation</a> is enabled.</p><h2 
id="ActionMapper-CustomActionMapper">Custom ActionMapper</h2><p>You can define 
your own ActionMapper by implementing 
<code>org.apache.struts2.dispatcher.mapper.ActionMapper</code> then configuring 
Struts 2 to use the new class in struts.xml</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;bean 
type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="mymapper" 
class="com.mycompany.myapp.MyActionMapper" /&gt;
+&lt;!-- END SNIPPET: action-example --&gt;</plain-text-body><h3 
id="ActionMapper-AllowedactionnameRegEx">Allowed action name RegEx</h3><p>By 
default the mapper will check if extracted action name matches provided RegEx, 
i.e.&#160;<code>[a-zA-Z0-9._!/\-]*</code>. You redefine this RegEx by defining 
a constant in&#160;<code>struts.xml</code> 
named&#160;<code>struts.allowed.action.names</code>. If action name doesn't 
match the RegEx a default action name will be returned which is defined 
as&#160;<code>index</code>. You can also redefine this by specifying 
constant&#160;<code>struts.default.action.name</code> 
in&#160;<code>struts.xml</code></p><h3 
id="ActionMapper-AllowedmethodnameRegEx">Allowed method name RegEx</h3><p>The 
same logic as above is used for extracted methods, the default RegEx 
<code>(</code><code>[a-zA-Z_]*[0-9]*)</code> is used to check if method is 
allowed, you can change this by setting 
constant&#160;<code>struts.allowed.method.names</code> 
in&#160;<code>struts.xml</co
 de>. If method doesn't match the RegEx a default method is returned, 
i.e.&#160;<code>execute</code>. This can be changed by defining 
constant&#160;<code>struts.default.method.name</code> 
in&#160;<code>struts.xml</code>.</p><p>Please note that this funcionallity only 
works when&#160;<a shape="rect" 
href="https://cwiki.apache.org/confluence/display/WW/Action+Configuration#ActionConfiguration-DynamicMethodInvocation";>Dynamic
 Method Invocation</a> is enabled.</p><h2 
id="ActionMapper-CustomActionMapper">Custom ActionMapper</h2><p>You can define 
your own ActionMapper by implementing 
<code>org.apache.struts2.dispatcher.mapper.ActionMapper</code> then configuring 
Struts 2 to use the new class in struts.xml</p><parameter 
ac:name="lang">xml</parameter><plain-text-body>&lt;bean 
type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="mymapper" 
class="com.mycompany.myapp.MyActionMapper" /&gt;
 &lt;constant name="struts.mapper.class" value="mymapper" /&gt;
-</pre>
-</div></div><p>Possible uses of the ActionMapper include defining your own, 
cleaner namespaces, such as URLs like <strong>/person/1</strong>, which would 
be similar to a request to <strong>/getPerson.action?personID=1</strong> using 
the DefaultActionMapper.</p><h2 
id="ActionMapper-CompositeActionMapper">CompositeActionMapper</h2><p>A 
composite action mapper that is capable of delegating to a series of <a 
shape="rect" href="actionmapper.html">ActionMapper</a> if the former failed to 
obtained a valid <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=ActionMapping&amp;linkCreation=true&amp;fromPageId=14128";>ActionMapping</a>
 or uri.</p><p>It is configured through <a shape="rect" 
href="strutsxml.html">struts.xml</a>. For example, with the following entries 
in struts.xml</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;constant name="struts.mapper.class" 
value="composite" /&gt;
+</plain-text-body><p>Possible uses of the ActionMapper include defining your 
own, cleaner namespaces, such as URLs like <strong>/person/1</strong>, which 
would be similar to a request to <strong>/getPerson.action?personID=1</strong> 
using the DefaultActionMapper.</p><h2 
id="ActionMapper-CompositeActionMapper">CompositeActionMapper</h2><p>A 
composite action mapper that is capable of delegating to a series of <a 
shape="rect" href="actionmapper.html">ActionMapper</a> if the former failed to 
obtained a valid <a shape="rect" class="createlink" 
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&amp;title=ActionMapping&amp;linkCreation=true&amp;fromPageId=14128";>ActionMapping</a>
 or uri.</p><p>It is configured through <a shape="rect" 
href="strutsxml.html">struts.xml</a>. For example, with the following entries 
in struts.xml</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;constant 
name="struts.mapper.class" value="composite" /&gt;
 &lt;constant name="struts.mapper.composite" value="struts,restful,restful2" 
/&gt;
-</pre>
-</div></div><p>When <code>CompositeActionMapper#getMapping(HttpServletRequest, 
ConfigurationManager)</code> or 
<code>CompositeActionMapper#getUriFromActionMapping(ActionMapping)</code> is 
invoked, <code>CompositeActionMapper</code> would go through these <a 
shape="rect" href="actionmapper.html">ActionMapper</a>s in sequence starting 
from <a shape="rect" href="actionmapper.html">ActionMapper</a> identified by 
<code>struts.mapper.composite.1</code>, followed by 
<code>struts.mapper.composite.2</code> and finally 
<code>struts.mapper.composite.3</code> (in this case) until either one of the 
<a shape="rect" href="actionmapper.html">ActionMapper</a> return a valid result 
(not null) or it runs out of <a shape="rect" 
href="actionmapper.html">ActionMapper</a> in which case it will just return 
null for both <code>CompositeActionMapper#getMapping(HttpServletRequest, 
ConfigurationManager)</code> and 
<code>CompositeActionMapper#getUriFromActionMapping(ActionMapping)</code> 
methods.</p><p>For exam
 ple with the following in struts.xml:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;constant name="struts.mapper.class" 
value="composite" /&gt;
+</plain-text-body><p>When 
<code>CompositeActionMapper#getMapping(HttpServletRequest, 
ConfigurationManager)</code> or 
<code>CompositeActionMapper#getUriFromActionMapping(ActionMapping)</code> is 
invoked, <code>CompositeActionMapper</code> would go through these <a 
shape="rect" href="actionmapper.html">ActionMapper</a>s in sequence starting 
from <a shape="rect" href="actionmapper.html">ActionMapper</a> identified by 
<code>struts.mapper.composite.1</code>, followed by 
<code>struts.mapper.composite.2</code> and finally 
<code>struts.mapper.composite.3</code> (in this case) until either one of the 
<a shape="rect" href="actionmapper.html">ActionMapper</a> return a valid result 
(not null) or it runs out of <a shape="rect" 
href="actionmapper.html">ActionMapper</a> in which case it will just return 
null for both <code>CompositeActionMapper#getMapping(HttpServletRequest, 
ConfigurationManager)</code> and 
<code>CompositeActionMapper#getUriFromActionMapping(ActionMapping)</code> 
methods.</p><p>Fo
 r example with the following in struts.xml:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;constant 
name="struts.mapper.class" value="composite" /&gt;
 &lt;constant name="struts.mapper.composite" value="struts,restful" /&gt;
-</pre>
-</div></div><p><code>CompositeActionMapper</code> will be configured with 2 
ActionMapper, namely "struts" which is 
<code>org.apache.struts2.dispatcher.mapper.DefaultActionMapper</code> and 
"restful" which is 
<code>org.apache.struts2.dispatcher.mapper.RestfulActionMapperRestfulActionMapper</code>.
 <code>CompositeActionMapper</code> would consult each of them in order 
described above.</p><h2 
id="ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</h2><p></p><p></p><p>
-A prefix based action mapper that is capable of delegating to other 
ActionMappers based on the request's prefix.<br clear="none">
-It is configured through struts.xml<br clear="none">
-For example, with the following entries in struts.properties
-</p>
-
-<p></p><pre>
-&lt;constant name="struts.mapper.class" 
value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/&gt;
-&lt;constant name="struts.mapper.prefixMapping" 
value="/communities:pseudoRestful,/communityTags:pseudoRestful,/events:pseudoRestful,/mediaList:pseudoRestful,/users:pseudoRestful,/community:struts,/communityTag:struts,/event:struts,/media:struts,/user:struts,:struts"/&gt;
-</pre>
-
-<p></p><p>
-When {@link PrefixBasedActionMapper#getMapping(HttpServletRequest, 
ConfigurationManager)} or
-PrefixBasedActionMapper#getUriFromActionMapping(ActionMapping) is invoked,
-PrefixBasedActionMapper will check each possible prefix (url prefix 
terminating just before a /) to find the most specific ActionMapper that 
returns a mapping when asked to map the request.  If none are found, null is 
returned for both
-{@link PrefixBasedActionMapper#getMapping(HttpServletRequest, 
ConfigurationManager)} and
-PrefixBasedActionMapper#getUriFromActionMapping(ActionMapping) methods.
-</p>
-<h4 
id="ActionMapper-PrefixBasedActionProxyFactory">PrefixBasedActionProxyFactory</h4><p></p><p></p><p>
-Prefix based factory should be used with 
org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper
-to use appropriate com.opensymphony.xwork2.ActionProxyFactory connected with 
given
-org.apache.struts2.dispatcher.mapper.ActionMapper
-</p>
-
-<p></p><p>
-Add below entry to struts.xml to enable the factory:
-</p>
-
-<p></p><pre>
-&lt;constant name="struts.actionProxyFactory" value="prefix"/&gt;
-</pre>
-
-<p></p><p>
-The factory will use the same set of patterns as defined with:
-</p>
-
-<p></p><pre>
-&lt;constant name="struts.mapper.prefixMapping" value="..."/&gt;
-</pre><h2 id="ActionMapper-ActionMapperandActionMappingobjects">ActionMapper 
and ActionMapping objects</h2><p>The ActionMapper fetches the ActionMapping 
object corresponding to a given request. Essentially, the ActionMapping is a 
data transfer object that collects together details such as the Action class 
and method to execute. The mapping is utilized by the Dispatcher and various 
user interface components. It is customizable through 
<code>struts.mapper.class</code> entry in <code>struts.properties</code> or 
<code>struts.xml</code>. Note that the value of this constant is the name of 
the bean of the new mapper.</p><h3 
id="ActionMapper-Customize">Customize</h3><div 
class="confluence-information-macro confluence-information-macro-warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Custom ActionMapper must implement 
ActionMapper interface and have a default constructor.</p></div></d
 iv><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;bean 
type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="mymapper" 
class="com.mycompany.myapp.MyActionMapper" /&gt;
+</plain-text-body><p><code>CompositeActionMapper</code> will be configured 
with 2 ActionMapper, namely "struts" which is 
<code>org.apache.struts2.dispatcher.mapper.DefaultActionMapper</code> and 
"restful" which is 
<code>org.apache.struts2.dispatcher.mapper.RestfulActionMapperRestfulActionMapper</code>.
 <code>CompositeActionMapper</code> would consult each of them in order 
described above.</p><h2 
id="ActionMapper-PrefixBasedActionMapper">PrefixBasedActionMapper</h2><p><plain-text-body>{snippet:id=description|javadoc=true|url=org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper}</plain-text-body></p><h4
 
id="ActionMapper-PrefixBasedActionProxyFactory">PrefixBasedActionProxyFactory</h4><p><plain-text-body>{snippet:id=description|javadoc=true|url=org.apache.struts2.factory.PrefixBasedActionProxyFactory}</plain-text-body></p><h2
 id="ActionMapper-ActionMapperandActionMappingobjects">ActionMapper and 
ActionMapping objects</h2><p>The ActionMapper fetches the ActionMapping object 
corr
 esponding to a given request. Essentially, the ActionMapping is a data 
transfer object that collects together details such as the Action class and 
method to execute. The mapping is utilized by the Dispatcher and various user 
interface components. It is customizable through 
<code>struts.mapper.class</code> entry in <code>struts.properties</code> or 
<code>struts.xml</code>. Note that the value of this constant is the name of 
the bean of the new mapper.</p><h3 
id="ActionMapper-Customize">Customize</h3><rich-text-body><p>Custom 
ActionMapper must implement ActionMapper interface and have a default 
constructor.</p></rich-text-body><parameter 
ac:name="lang">xml</parameter><plain-text-body>&lt;bean 
type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="mymapper" 
class="com.mycompany.myapp.MyActionMapper" /&gt;
 &lt;constant name="struts.mapper.class" value="mymapper" /&gt;
-</pre>
-</div></div><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class MyCustomActionMapper implements 
ActionMapper {
+</plain-text-body><parameter 
ac:name="language">java</parameter><plain-text-body>public class 
MyCustomActionMapper implements ActionMapper {
   public ActionMapping getMapping(HttpServletRequest request,
                                   ConfigurationManager configManager) {
     ....
@@ -231,8 +155,7 @@ The factory will use the same set of patterns as defined 
with:
     ....
   }
 }
-</pre>
-</div></div><p><img class="emoticon emoticon-light-on" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/lightbulb_on.png";
 data-emoticon-name="light-on" alt="(lightbulb)"> See also: <a shape="rect" 
href="restfulactionmapper.html">RestfulActionMapper</a></p><h2 
id="ActionMapper-Next:ActionProxy&amp;ActionProxyFactory">Next: <a shape="rect" 
href="action-proxy-actionproxy-factory.html">Action Proxy &amp; ActionProxy 
Factory</a></h2></div>
+</plain-text-body><p><img class="emoticon emoticon-light-on" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/lightbulb_on.png";
 data-emoticon-name="light-on" alt="(lightbulb)"> See also: <a shape="rect" 
href="restfulactionmapper.html">RestfulActionMapper</a></p><h2 
id="ActionMapper-Next:ActionProxy&amp;ActionProxyFactory">Next: <a shape="rect" 
href="action-proxy-actionproxy-factory.html">Action Proxy &amp; ActionProxy 
Factory</a></h2></div>
         </div>
 
                     <div class="tabletitle">

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/actionmessage.html
----------------------------------------------------------------------
diff --git a/content/docs/actionmessage.html b/content/docs/actionmessage.html
index f4bbfa3..249b718 100644
--- a/content/docs/actionmessage.html
+++ b/content/docs/actionmessage.html
@@ -154,7 +154,7 @@ strings will be html escaped by default.</p>
 <h2 id="actionmessage-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;s:actionmessage /&gt;
 &lt;s:form .... &gt;
    ....

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/after-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/after-annotation.html 
b/content/docs/after-annotation.html
index 3896e98..940f730 100644
--- a/content/docs/after-annotation.html
+++ b/content/docs/after-annotation.html
@@ -156,7 +156,7 @@ executed. Return value is ignored.</p>
 <h2 id="AfterAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 public class SampleAction extends ActionSupport {
 
  @After

Reply via email to