Repository: struts-site
Updated Branches:
  refs/heads/asf-site 36e3e8378 -> 26bb096d0


Updates production by Jenkins


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

Branch: refs/heads/asf-site
Commit: 26bb096d00e60ae9e670053aeb506b77a7406773
Parents: 36e3e83
Author: jenkins <bui...@apache.org>
Authored: Mon Jul 31 14:11:34 2017 +0000
Committer: jenkins <bui...@apache.org>
Committed: Mon Jul 31 14:11:34 2017 +0000

----------------------------------------------------------------------
 content/core-developers/struts-default-xml.html | 452 +++++++++++++++++--
 1 file changed, 413 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-site/blob/26bb096d/content/core-developers/struts-default-xml.html
----------------------------------------------------------------------
diff --git a/content/core-developers/struts-default-xml.html 
b/content/core-developers/struts-default-xml.html
index c11380e..8cc735f 100644
--- a/content/core-developers/struts-default-xml.html
+++ b/content/core-developers/struts-default-xml.html
@@ -126,45 +126,419 @@
     <a href="index.html" title="back to Core Developers Guide"><< back to Core 
Developers Guide</a>
     <h1 id="struts-defaultxml">struts-default.xml</h1>
 
-<p>A base configuration file named</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>struts-default.xml
-</code></pre>
-</div>
-<p>is included in the</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>struts2.jar
-</code></pre>
-</div>
-<p>file. This file is automatically included into</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>struts.xml
-</code></pre>
-</div>
-<p>file to provide the standard configuration settings without having to copy 
them.</p>
-
-<table>
-  <tbody>
-    <tr>
-      <td>To exclude the struts-default.xml or to provide your own version, 
see the struts.configuration.files setting in <a 
href="struts-properties.html">struts.properties</a>.</td>
-    </tr>
-  </tbody>
-</table>
-
-<table>
-  <tbody>
-    <tr>
-    </tr>
-  </tbody>
-</table>
-
-<p>The contents of struts-default.xml are here:</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code><span 
class="p">{</span><span 
class="err">snippet:id=all|lang=xml|url=struts2/core/src/main/resources/struts-default.xml</span><span
 class="p">}</span><span class="w">
-</span></code></pre>
-</div>
-
-<p>This file defines all of the default bundled results and interceptors and 
many interceptor stacks which you can use either as-is or as a basis for your 
own application-specific interceptor stacks. <strong>Notice the name of the 
package is “struts-default”</strong>.</p>
+<p>A base configuration file named <code 
class="highlighter-rouge">struts-default.xml</code> is included in the <code 
class="highlighter-rouge">struts2-core.jar</code> file. This file is 
+automatically included into <code class="highlighter-rouge">struts.xml</code> 
file to provide the standard configuration settings without having 
+to copy them.</p>
+
+<blockquote>
+  <p>To exclude the <code class="highlighter-rouge">struts-default.xml</code> 
or to provide your own version, see the <code 
class="highlighter-rouge">struts.configuration.files</code>
+setting in <a href="struts-properties.html">struts.properties</a>.</p>
+</blockquote>
+
+<p>The content of <code class="highlighter-rouge">struts-default.xml</code> is 
here:</p>
+
+<figure class="highlight"><pre><code class="language-xml" 
data-lang="xml"><span class="cp">&lt;?xml version="1.0" encoding="UTF-8" 
?&gt;</span>
+<span class="c">&lt;!--
+/*
+ * $Id$
+ *
+ * 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.
+ */
+--&gt;</span>
+
+<span class="c">&lt;!--
+    When declaring beans in this file you must either use name="struts" or 
don't name the bean at all.
+
+    The name="struts" must be used when alias was defined in {@link 
org.apache.struts2.config.DefaultBeanSelectionProvider} -
+    it is then the default bean's name and {@link 
org.apache.struts2.config.DefaultBeanSelectionProvider} links name "struts"
+    with "default" (aliasing it)
+
+    If name won't be defined then the "default" value will be used {@link 
com.opensymphony.xwork2.inject.Container#DEFAULT_NAME}
+    and {@link com.opensymphony.xwork2.inject.Inject}
+--&gt;</span>
+<span class="cp">&lt;!DOCTYPE struts PUBLIC
+    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+    "http://struts.apache.org/dtds/struts-2.5.dtd"&gt;</span>
+
+<span class="nt">&lt;struts&gt;</span>
+
+    <span class="nt">&lt;constant</span> <span class="na">name=</span><span 
class="s">"struts.excludedClasses"</span>
+              <span class="na">value=</span><span class="s">"</span>
+                <span class="err">java.lang.Object,</span>
+                <span class="err">java.lang.Runtime,</span>
+                <span class="err">java.lang.System,</span>
+                <span class="err">java.lang.Class,</span>
+                <span class="err">java.lang.ClassLoader,</span>
+                <span class="err">java.lang.Shutdown,</span>
+                <span class="err">java.lang.ProcessBuilder,</span>
+                <span class="err">ognl.OgnlContext,</span>
+                <span class="err">ognl.ClassResolver,</span>
+                <span class="err">ognl.TypeConverter,</span>
+                <span class="err">ognl.MemberAccess,</span>
+                <span class="err">ognl.DefaultMemberAccess,</span>
+                <span 
class="err">com.opensymphony.xwork2.ognl.SecurityMemberAccess,</span>
+                <span 
class="err">com.opensymphony.xwork2.ActionContext"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="c">&lt;!-- this must be valid regex, each '.' in package name 
must be escaped! --&gt;</span>
+    <span class="c">&lt;!-- it's more flexible but slower than simple string 
comparison --&gt;</span>
+    <span class="c">&lt;!-- constant name="struts.excludedPackageNamePatterns" 
value="^java\.lang\..*,^ognl.*,^(?!javax\.servlet\..+)(javax\..+)" / 
--&gt;</span>
+
+    <span class="c">&lt;!-- this is simpler version of the above used with 
string comparison --&gt;</span>
+    <span class="nt">&lt;constant</span> <span class="na">name=</span><span 
class="s">"struts.excludedPackageNames"</span>
+              <span class="na">value=</span><span class="s">"</span>
+                <span class="err">java.lang.,</span>
+                <span class="err">ognl.,</span>
+                <span class="err">javax,</span>
+                <span class="err">freemarker.core.,</span>
+                <span class="err">freemarker.template.,</span>
+                <span class="err">freemarker.ext.rhino.,</span>
+                <span class="err">freemarker.ext.beans.,</span>
+                <span class="err">sun.reflect.,</span>
+                <span class="err">javassist."</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ObjectFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.factory.ResultFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.factory.StrutsResultFactory"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.factory.ActionFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.factory.DefaultActionFactory"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.factory.ConverterFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.factory.DefaultConverterFactory"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.factory.InterceptorFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.factory.DefaultInterceptorFactory"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.factory.ValidatorFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.factory.DefaultValidatorFactory"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.factory.UnknownHandlerFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.factory.DefaultUnknownHandlerFactory"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.FileManager"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.fs.DefaultFileManager"</span> <span 
class="na">name=</span><span class="s">"system"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.FileManagerFactory"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.ActionProxyFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.factory.StrutsActionProxyFactory"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.ActionProxyFactory"</span> <span 
class="na">name=</span><span class="s">"prefix"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.factory.PrefixBasedActionProxyFactory"</span><span
 class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.ObjectTypeDeterminer"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"</span><span
 class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.PatternMatcher"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.WildcardHelper"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.PatternMatcher"</span> <span 
class="na">name=</span><span class="s">"namedVariable"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.NamedVariablePatternMatcher"</span><span
 class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.PatternMatcher"</span> <span 
class="na">name=</span><span class="s">"regex"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.util.RegexPatternMatcher"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.util.ContentTypeMatcher"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.util.DefaultContentTypeMatcher"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.ActionMapper"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.DefaultActionMapper"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.ActionMapper"</span> <span 
class="na">name=</span><span class="s">"composite"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.CompositeActionMapper"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.ActionMapper"</span> <span 
class="na">name=</span><span class="s">"restful"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.RestfulActionMapper"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.ActionMapper"</span> <span 
class="na">name=</span><span class="s">"restful2"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.mapper.Restful2ActionMapper"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.multipart.MultiPartRequest"</span> 
<span class="na">name=</span><span class="s">"jakarta"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest"</span>
 <span class="na">scope=</span><span class="s">"prototype"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.multipart.MultiPartRequest"</span> 
<span class="na">name=</span><span class="s">"jakarta-stream"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest"</span>
 <span class="na">scope=</span><span class="s">"prototype"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.views.TagLibraryDirectiveProvider"</span> <span 
class="na">name=</span><span class="s">"s"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.views.DefaultTagLibrary"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.views.TagLibraryModelProvider"</span> <span 
class="na">name=</span><span class="s">"s"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.views.DefaultTagLibrary"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.views.freemarker.FreemarkerThemeTemplateLoader"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.views.freemarker.FreemarkerManager"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.views.velocity.VelocityManager"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">optional=</span><span class="s">"true"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.components.template.TemplateEngineManager"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.components.template.TemplateEngine"</span> <span 
class="na">name=</span><span class="s">"ftl"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.components.template.FreemarkerTemplateEngine"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.components.template.TemplateEngine"</span> <span 
class="na">name=</span><span class="s">"vm"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.components.template.VelocityTemplateEngine"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.components.template.TemplateEngine"</span> <span 
class="na">name=</span><span class="s">"jsp"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.components.template.JspTemplateEngine"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.XWorkConverter"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.XWorkConverter"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor"</span>
 <span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.ConversionFileProcessor"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DefaultConversionFileProcessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor"</span>
 <span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DefaultConversionAnnotationProcessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.TypeConverterCreator"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DefaultTypeConverterCreator"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.TypeConverterHolder"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DefaultTypeConverterHolder"</span>
 <span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.CollectionConverter"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.CollectionConverter"</span> 
<span class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.ArrayConverter"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.ArrayConverter"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DateConverter"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.DateConverter"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.NumberConverter"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.NumberConverter"</span> 
<span class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.StringConverter"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.StringConverter"</span> 
<span class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.LocalizedTextProvider"</span> <span 
class="na">name=</span><span class="s">"global-only"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.GlobalLocalizedTextProvider"</span> 
<span class="na">scope=</span><span class="s">"singleton"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.LocalizedTextProvider"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.StrutsLocalizedTextProvider"</span> 
<span class="na">scope=</span><span class="s">"singleton"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.TextProvider"</span> <span 
class="na">name=</span><span class="s">"system"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.DefaultTextProvider"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.TextProviderFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.StrutsTextProviderFactory"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.LocaleProviderFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.DefaultLocaleProviderFactory"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.components.UrlRenderer"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.components.ServletUrlRenderer"</span><span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.views.util.UrlHelper"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.views.util.DefaultUrlHelper"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.ValueStackFactory"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.OgnlValueStackFactory"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.reflection.ReflectionProvider"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.OgnlReflectionProvider"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.reflection.ReflectionContextFactory"</span>
 <span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.OgnlReflectionContextFactory"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.conversion.NullHandler"</span> <span 
class="na">name=</span><span class="s">"java.lang.Object"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler"</span>
 <span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.validator.ActionValidatorManager"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.validator.AnnotationActionValidatorManager"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.validator.ActionValidatorManager"</span> 
<span class="na">name=</span><span class="s">"no-annotations"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.validator.DefaultActionValidatorManager"</span>
 <span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.validator.ValidatorFactory"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.validator.DefaultValidatorFactory"</span><span
 class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.validator.ValidatorFileParser"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.validator.DefaultValidatorFileParser"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.OgnlUtil"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.util.TextParser"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.util.OgnlTextParser"</span> <span 
class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"com.opensymphony.xwork2.util.CompoundRoot"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.lang.Object"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.ObjectAccessor"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.Iterator"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkIteratorPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.Enumeration"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkEnumerationAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.List"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkListPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.Set"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.Map"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkMapPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.Collection"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"com.opensymphony.xwork2.ognl.ObjectProxy"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.ObjectProxyPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"org.apache.struts2.dispatcher.HttpParameters"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.HttpParametersPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"org.apache.struts2.dispatcher.Parameter"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.ParameterPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.MethodAccessor"</span> <span class="na">name=</span><span 
class="s">"java.lang.Object"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor"</span> 
<span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.MethodAccessor"</span> <span class="na">name=</span><span 
class="s">"com.opensymphony.xwork2.util.CompoundRoot"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor"</span> 
<span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">class=</span><span 
class="s">"org.apache.struts2.views.jsp.ui.OgnlTool"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.StaticContentLoader"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.DefaultStaticContentLoader"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.UnknownHandlerManager"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.DefaultUnknownHandlerManager"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"org.apache.struts2.dispatcher.DispatcherErrorHandler"</span> <span 
class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler"</span> 
<span class="nt">/&gt;</span>
+    
+    <span class="nt">&lt;constant</span> <span class="na">name=</span><span 
class="s">"struts.dispatcher.errorHandler"</span> <span 
class="na">value=</span><span class="s">"struts"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="c">&lt;!--  Silly workarounds for OGNL since there is 
currently no way to flush its internal caches --&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.ArrayList"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkListPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.HashSet"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span 
class="s">"java.util.HashMap"</span> <span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkMapPropertyAccessor"</span>
 <span class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.security.ExcludedPatternsChecker"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker"</span>
 <span class="na">scope=</span><span class="s">"prototype"</span> <span 
class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.security.AcceptedPatternsChecker"</span> 
<span class="na">name=</span><span class="s">"struts"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker"</span>
 <span class="na">scope=</span><span class="s">"prototype"</span> <span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"com.opensymphony.xwork2.config.providers.ValueSubstitutor"</span> 
<span class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.config.providers.EnvsValueSubstitutor"</span>
 <span class="na">scope=</span><span class="s">"singleton"</span><span 
class="nt">/&gt;</span>
+
+    <span class="nt">&lt;package</span> <span class="na">name=</span><span 
class="s">"struts-default"</span> <span class="na">abstract=</span><span 
class="s">"true"</span> <span class="na">strict-method-invocation=</span><span 
class="s">"true"</span><span class="nt">&gt;</span>
+        <span class="nt">&lt;result-types&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"chain"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ActionChainResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"dispatcher"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.ServletDispatcherResult"</span> <span 
class="na">default=</span><span class="s">"true"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"freemarker"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.views.freemarker.FreemarkerResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"httpheader"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.HttpHeaderResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"redirect"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.ServletRedirectResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"redirectAction"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.ServletActionRedirectResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"stream"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.StreamResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"velocity"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.VelocityResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"xslt"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.views.xslt.XSLTResult"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"plainText"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.PlainTextResult"</span> <span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;result-type</span> <span 
class="na">name=</span><span class="s">"postback"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.result.PostbackResult"</span> <span 
class="nt">/&gt;</span>
+        <span class="nt">&lt;/result-types&gt;</span>
+
+        <span class="nt">&lt;interceptors&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"alias"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.AliasInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"autowiring"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"chain"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.ChainingInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"conversionError"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.StrutsConversionErrorInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"cookie"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.CookieInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"cookieProvider"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.CookieProviderInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"clearSession"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.ClearSessionInterceptor"</span> <span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"createSession"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.CreateSessionInterceptor"</span> 
<span class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"debugging"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.debugging.DebuggingInterceptor"</span>
 <span class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"execAndWait"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.ExecuteAndWaitInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"exception"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"fileUpload"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.FileUploadInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"i18n"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.I18nInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"logger"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.LoggingInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"modelDriven"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"scopedModelDriven"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"params"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.ParametersInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"actionMappingParams"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.ActionMappingParametersInteceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"prepare"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.PrepareInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"staticParams"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"scope"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.ScopeInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"servletConfig"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.ServletConfigInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"timer"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.TimerInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"token"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.TokenInterceptor"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"tokenSession"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.TokenSessionStoreInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"validation"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"workflow"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"</span><span
 class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"store"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.MessageStoreInterceptor"</span> <span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"checkbox"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.CheckboxInterceptor"</span> <span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"datetime"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.DateTextFieldInterceptor"</span> 
<span class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"profiling"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.ProfilingActivationInterceptor"</span>
 <span class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"roles"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.RolesInterceptor"</span> <span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"annotationWorkflow"</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor"</span>
 <span class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"multiselect"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.MultiselectInterceptor"</span> <span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;interceptor</span> <span 
class="na">name=</span><span class="s">"noop"</span> <span 
class="na">class=</span><span 
class="s">"org.apache.struts2.interceptor.NoOpInterceptor"</span> <span 
class="nt">/&gt;</span>
+
+            <span class="c">&lt;!-- Empty stack - performs no operations 
--&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"emptyStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"noop"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Basic stack --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"basicStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"exception"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"servletConfig"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"prepare"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"checkbox"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"datetime"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"multiselect"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"actionMappingParams"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"params"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"conversionError"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Sample validation and workflow stack 
--&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"validationWorkflowStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"basicStack"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"validation"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"workflow"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Sample file upload stack --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"fileUploadStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"fileUpload"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"basicStack"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Sample model-driven stack  --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"modelDrivenStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"modelDriven"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"basicStack"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Sample action chaining stack --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"chainStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"chain"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"basicStack"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Sample i18n stack --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"i18nStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"i18n"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"basicStack"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- An example of the paramsPrepareParams 
trick. This stack
+                 is exactly the same as the defaultStack, except that it
+                 includes one extra interceptor before the prepare interceptor:
+                 the params interceptor.
+
+                 This is useful for when you wish to apply parameters directly
+                 to an object that you wish to load externally (such as a DAO
+                 or database or service layer), but can't load that object
+                 until at least the ID parameter has been loaded. By loading
+                 the parameters twice, you can retrieve the object in the
+                 prepare() method, allowing the second params interceptor to
+                 apply the values on the object. --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"paramsPrepareParamsStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"exception"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"alias"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"i18n"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"checkbox"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"datetime"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"multiselect"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"params"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"servletConfig"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"prepare"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"chain"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"modelDriven"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"fileUpload"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"staticParams"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"actionMappingParams"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"params"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"conversionError"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"validation"</span><span 
class="nt">&gt;</span>
+                    <span class="nt">&lt;param</span> <span 
class="na">name=</span><span class="s">"excludeMethods"</span><span 
class="nt">&gt;</span>input,back,cancel,browse<span 
class="nt">&lt;/param&gt;</span>
+                <span class="nt">&lt;/interceptor-ref&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"workflow"</span><span 
class="nt">&gt;</span>
+                    <span class="nt">&lt;param</span> <span 
class="na">name=</span><span class="s">"excludeMethods"</span><span 
class="nt">&gt;</span>input,back,cancel,browse<span 
class="nt">&lt;/param&gt;</span>
+                <span class="nt">&lt;/interceptor-ref&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- A complete stack with all the common 
interceptors in place.
+                 Generally, this stack should be the one you use, though it
+                 may do more than you need. Also, the ordering can be
+                 switched around (ex: if you wish to have your servlet-related
+                 objects applied before prepare() is called, you'd need to move
+                 servletConfig interceptor up.
+
+                 This stack also excludes from the normal validation and 
workflow
+                 the method names input, back, and cancel. These typically are
+                 associated with requests that should not be validated.
+                 --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"defaultStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"exception"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"alias"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"servletConfig"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"i18n"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"prepare"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"chain"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"scopedModelDriven"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"modelDriven"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"fileUpload"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"checkbox"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"datetime"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"multiselect"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"staticParams"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"actionMappingParams"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"params"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"conversionError"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"validation"</span><span 
class="nt">&gt;</span>
+                    <span class="nt">&lt;param</span> <span 
class="na">name=</span><span class="s">"excludeMethods"</span><span 
class="nt">&gt;</span>input,back,cancel,browse<span 
class="nt">&lt;/param&gt;</span>
+                <span class="nt">&lt;/interceptor-ref&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"workflow"</span><span 
class="nt">&gt;</span>
+                    <span class="nt">&lt;param</span> <span 
class="na">name=</span><span class="s">"excludeMethods"</span><span 
class="nt">&gt;</span>input,back,cancel,browse<span 
class="nt">&lt;/param&gt;</span>
+                <span class="nt">&lt;/interceptor-ref&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"debugging"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- The completeStack is here for backwards 
compatibility for
+                 applications that still refer to the defaultStack by the
+                 old name --&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"completeStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"defaultStack"</span><span 
class="nt">/&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+            <span class="c">&lt;!-- Sample execute and wait stack.
+                 Note: execAndWait should always be the *last* interceptor. 
--&gt;</span>
+            <span class="nt">&lt;interceptor-stack</span> <span 
class="na">name=</span><span class="s">"executeAndWaitStack"</span><span 
class="nt">&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"execAndWait"</span><span 
class="nt">&gt;</span>
+                    <span class="nt">&lt;param</span> <span 
class="na">name=</span><span class="s">"excludeMethods"</span><span 
class="nt">&gt;</span>input,back,cancel<span class="nt">&lt;/param&gt;</span>
+                <span class="nt">&lt;/interceptor-ref&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"defaultStack"</span><span 
class="nt">/&gt;</span>
+                <span class="nt">&lt;interceptor-ref</span> <span 
class="na">name=</span><span class="s">"execAndWait"</span><span 
class="nt">&gt;</span>
+                    <span class="nt">&lt;param</span> <span 
class="na">name=</span><span class="s">"excludeMethods"</span><span 
class="nt">&gt;</span>input,back,cancel<span class="nt">&lt;/param&gt;</span>
+                <span class="nt">&lt;/interceptor-ref&gt;</span>
+            <span class="nt">&lt;/interceptor-stack&gt;</span>
+
+       <span class="nt">&lt;/interceptors&gt;</span>
+
+        <span class="nt">&lt;default-interceptor-ref</span> <span 
class="na">name=</span><span class="s">"defaultStack"</span><span 
class="nt">/&gt;</span>
+
+        <span class="nt">&lt;default-class-ref</span> <span 
class="na">class=</span><span 
class="s">"com.opensymphony.xwork2.ActionSupport"</span> <span 
class="nt">/&gt;</span>
+
+        <span 
class="nt">&lt;global-allowed-methods&gt;</span>execute,input,back,cancel,browse,save,delete,list,index<span
 class="nt">&lt;/global-allowed-methods&gt;</span>
+
+    <span class="nt">&lt;/package&gt;</span>
+
+<span class="nt">&lt;/struts&gt;</span></code></pre></figure>
+
+<p>This file defines all of the default bundled results and interceptors and 
many interceptor stacks which you can use 
+either as-is or as a basis for your own application-specific interceptor 
stacks.</p>
+
+<p><strong>Notice the name of the package is “struts-default”</strong></p>
 
   </section>
 </article>

Reply via email to