zoukankan      html  css  js  c++  java
  • struts2-core-2.3.20.jar

    核心配置位于该jar

    struts-default.xml

    struts-2.3.dtd

      1 <?xml version="1.0" encoding="UTF-8" ?>
      2 <!--
      3 /*
      4  * $Id$
      5  *
      6  * Licensed to the Apache Software Foundation (ASF) under one
      7  * or more contributor license agreements.  See the NOTICE file
      8  * distributed with this work for additional information
      9  * regarding copyright ownership.  The ASF licenses this file
     10  * to you under the Apache License, Version 2.0 (the
     11  * "License"); you may not use this file except in compliance
     12  * with the License.  You may obtain a copy of the License at
     13  *
     14  *  http://www.apache.org/licenses/LICENSE-2.0
     15  *
     16  * Unless required by applicable law or agreed to in writing,
     17  * software distributed under the License is distributed on an
     18  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     19  * KIND, either express or implied.  See the License for the
     20  * specific language governing permissions and limitations
     21  * under the License.
     22  */
     23 -->
     24 
     25 <!--
     26     When declaring beans in this file you must either use name="struts" or don't name the bean at all.
     27 
     28     The name="struts" must be used when alias was defined in {@link org.apache.struts2.config.DefaultBeanSelectionProvider} -
     29     it is then the default bean's name and {@link org.apache.struts2.config.DefaultBeanSelectionProvider} links name "struts"
     30     with "default" (aliasing it)
     31 
     32     If name won't be defined then the "default" value will be used {@link com.opensymphony.xwork2.inject.Container#DEFAULT_NAME}
     33     and {@link com.opensymphony.xwork2.inject.Inject}
     34 -->
     35 <!DOCTYPE struts PUBLIC
     36     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     37     "http://struts.apache.org/dtds/struts-2.3.dtd">
     38 
     39 <struts>
     40 
     41     <constant name="struts.excludedClasses"
     42               value="
     43                 java.lang.Object,
     44                 java.lang.Runtime,
     45                 java.lang.System,
     46                 java.lang.Class,
     47                 java.lang.ClassLoader,
     48                 java.lang.Shutdown,
     49                 ognl.OgnlContext,
     50                 ognl.MemberAccess,
     51                 ognl.ClassResolver,
     52                 ognl.TypeConverter,
     53                 com.opensymphony.xwork2.ActionContext" />
     54     <!-- this must be valid regex, each '.' in package name must be escaped! -->
     55     <constant name="struts.excludedPackageNamePatterns" value="^java.lang..*,^ognl.*,^javax.*" />
     56 
     57     <bean class="com.opensymphony.xwork2.ObjectFactory" name="struts"/>
     58     <bean type="com.opensymphony.xwork2.factory.ResultFactory" name="struts" class="org.apache.struts2.factory.StrutsResultFactory" />
     59     <bean type="com.opensymphony.xwork2.factory.ActionFactory" name="struts" class="com.opensymphony.xwork2.factory.DefaultActionFactory" />
     60     <bean type="com.opensymphony.xwork2.factory.ConverterFactory" name="struts" class="com.opensymphony.xwork2.factory.DefaultConverterFactory" />
     61     <bean type="com.opensymphony.xwork2.factory.InterceptorFactory" name="struts" class="com.opensymphony.xwork2.factory.DefaultInterceptorFactory" />
     62     <bean type="com.opensymphony.xwork2.factory.ValidatorFactory" name="struts" class="com.opensymphony.xwork2.factory.DefaultValidatorFactory" />
     63     <bean type="com.opensymphony.xwork2.factory.UnknownHandlerFactory" name="struts" class="com.opensymphony.xwork2.factory.DefaultUnknownHandlerFactory" />
     64 
     65     <bean type="com.opensymphony.xwork2.FileManager" class="com.opensymphony.xwork2.util.fs.DefaultFileManager" name="system" scope="singleton"/>
     66     <bean type="com.opensymphony.xwork2.FileManagerFactory" class="com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory" name="struts" scope="singleton"/>
     67 
     68     <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="struts" class="org.apache.struts2.impl.StrutsActionProxyFactory"/>
     69     <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="prefix" class="org.apache.struts2.impl.PrefixBasedActionProxyFactory"/>
     70 
     71     <bean type="com.opensymphony.xwork2.conversion.ObjectTypeDeterminer" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer"/>
     72 
     73     <bean type="com.opensymphony.xwork2.util.PatternMatcher" name="struts" class="com.opensymphony.xwork2.util.WildcardHelper" />
     74     <bean type="com.opensymphony.xwork2.util.PatternMatcher" name="namedVariable" class="com.opensymphony.xwork2.util.NamedVariablePatternMatcher"/>
     75     <bean type="com.opensymphony.xwork2.util.PatternMatcher" name="regex" class="org.apache.struts2.util.RegexPatternMatcher"/>
     76 
     77     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="struts" class="org.apache.struts2.dispatcher.mapper.DefaultActionMapper" />
     78     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="composite" class="org.apache.struts2.dispatcher.mapper.CompositeActionMapper" />
     79     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="restful" class="org.apache.struts2.dispatcher.mapper.RestfulActionMapper" />
     80     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="restful2" class="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper" />
     81 
     82     <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakarta" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default"/>
     83     <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakarta-stream" class="org.apache.struts2.dispatcher.multipart.JakartaStreamMultiPartRequest" scope="default"/>
     84 
     85     <bean type="org.apache.struts2.views.TagLibraryDirectiveProvider" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />
     86     <bean type="org.apache.struts2.views.TagLibraryModelProvider" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />
     87 
     88     <bean class="org.apache.struts2.views.freemarker.FreemarkerThemeTemplateLoader" />
     89     <bean class="org.apache.struts2.views.freemarker.FreemarkerManager" name="struts" />
     90     <bean class="org.apache.struts2.views.velocity.VelocityManager" name="struts" optional="true" />
     91 
     92     <bean class="org.apache.struts2.components.template.TemplateEngineManager" />
     93     <bean type="org.apache.struts2.components.template.TemplateEngine" name="ftl" class="org.apache.struts2.components.template.FreemarkerTemplateEngine" />
     94     <bean type="org.apache.struts2.components.template.TemplateEngine" name="vm" class="org.apache.struts2.components.template.VelocityTemplateEngine" />
     95     <bean type="org.apache.struts2.components.template.TemplateEngine" name="jsp" class="org.apache.struts2.components.template.JspTemplateEngine" />
     96 
     97     <bean type="com.opensymphony.xwork2.conversion.impl.XWorkConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.XWorkConverter" />
     98 
     99     <bean type="com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor" />
    100     <bean type="com.opensymphony.xwork2.conversion.ConversionFileProcessor" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultConversionFileProcessor" />
    101     <bean type="com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultConversionAnnotationProcessor" />
    102     <bean type="com.opensymphony.xwork2.conversion.TypeConverterCreator" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultTypeConverterCreator" />
    103     <bean type="com.opensymphony.xwork2.conversion.TypeConverterHolder" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultTypeConverterHolder" />
    104 
    105     <bean class="com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter" />
    106 
    107     <bean type="com.opensymphony.xwork2.conversion.impl.CollectionConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.CollectionConverter" scope="singleton"/>
    108     <bean type="com.opensymphony.xwork2.conversion.impl.ArrayConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.ArrayConverter" scope="singleton"/>
    109     <bean type="com.opensymphony.xwork2.conversion.impl.DateConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.DateConverter" scope="singleton"/>
    110     <bean type="com.opensymphony.xwork2.conversion.impl.NumberConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.NumberConverter" scope="singleton"/>
    111     <bean type="com.opensymphony.xwork2.conversion.impl.StringConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.StringConverter" scope="singleton"/>
    112 
    113     <bean type="com.opensymphony.xwork2.TextProvider" name="struts" class="com.opensymphony.xwork2.TextProviderSupport" scope="default" />
    114     <bean type="com.opensymphony.xwork2.LocaleProvider" name="struts" class="com.opensymphony.xwork2.DefaultLocaleProvider" scope="singleton" />
    115 
    116     <bean type="org.apache.struts2.components.UrlRenderer" name="struts" class="org.apache.struts2.components.ServletUrlRenderer"/>
    117     <bean type="org.apache.struts2.views.util.UrlHelper" name="struts" class="org.apache.struts2.views.util.DefaultUrlHelper"/>
    118 
    119     <bean type="com.opensymphony.xwork2.util.ValueStackFactory" name="struts" class="com.opensymphony.xwork2.ognl.OgnlValueStackFactory" />
    120     <bean type="com.opensymphony.xwork2.util.reflection.ReflectionProvider" name="struts" class="com.opensymphony.xwork2.ognl.OgnlReflectionProvider" />
    121     <bean type="com.opensymphony.xwork2.util.reflection.ReflectionContextFactory" name="struts" class="com.opensymphony.xwork2.ognl.OgnlReflectionContextFactory" />
    122 
    123     <bean type="com.opensymphony.xwork2.TextProvider" name="system" class="com.opensymphony.xwork2.DefaultTextProvider" />
    124     <bean type="com.opensymphony.xwork2.conversion.NullHandler" name="java.lang.Object" class="com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler" />
    125 
    126     <bean type="com.opensymphony.xwork2.validator.ActionValidatorManager" name="struts" class="com.opensymphony.xwork2.validator.AnnotationActionValidatorManager" />
    127     <bean type="com.opensymphony.xwork2.validator.ActionValidatorManager" name="no-annotations" class="com.opensymphony.xwork2.validator.DefaultActionValidatorManager" />
    128 
    129     <bean type="com.opensymphony.xwork2.validator.ValidatorFactory" class="com.opensymphony.xwork2.validator.DefaultValidatorFactory"/>
    130     <bean type="com.opensymphony.xwork2.validator.ValidatorFileParser" class="com.opensymphony.xwork2.validator.DefaultValidatorFileParser" />
    131 
    132     <bean class="com.opensymphony.xwork2.ognl.OgnlUtil" />
    133 
    134     <bean type="com.opensymphony.xwork2.util.TextParser" name="struts" class="com.opensymphony.xwork2.util.OgnlTextParser" scope="singleton"/>
    135 
    136     <bean type="ognl.PropertyAccessor" name="com.opensymphony.xwork2.util.CompoundRoot" class="com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor" />
    137     <bean type="ognl.PropertyAccessor" name="java.lang.Object" class="com.opensymphony.xwork2.ognl.accessor.ObjectAccessor" />
    138     <bean type="ognl.PropertyAccessor" name="java.util.Iterator" class="com.opensymphony.xwork2.ognl.accessor.XWorkIteratorPropertyAccessor" />
    139     <bean type="ognl.PropertyAccessor" name="java.util.Enumeration" class="com.opensymphony.xwork2.ognl.accessor.XWorkEnumerationAccessor" />
    140     <bean type="ognl.PropertyAccessor" name="java.util.List" class="com.opensymphony.xwork2.ognl.accessor.XWorkListPropertyAccessor" />
    141     <bean type="ognl.PropertyAccessor" name="java.util.Set" class="com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor" />
    142     <bean type="ognl.PropertyAccessor" name="java.util.Map" class="com.opensymphony.xwork2.ognl.accessor.XWorkMapPropertyAccessor" />
    143     <bean type="ognl.PropertyAccessor" name="java.util.Collection" class="com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor" />
    144     <bean type="ognl.PropertyAccessor" name="com.opensymphony.xwork2.ognl.ObjectProxy" class="com.opensymphony.xwork2.ognl.accessor.ObjectProxyPropertyAccessor" />
    145 
    146     <bean type="ognl.MethodAccessor" name="java.lang.Object" class="com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor" />
    147     <bean type="ognl.MethodAccessor" name="com.opensymphony.xwork2.util.CompoundRoot" class="com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor" />
    148 
    149     <bean class="org.apache.struts2.views.jsp.ui.OgnlTool" />
    150 
    151     <bean type="org.apache.struts2.dispatcher.StaticContentLoader" class="org.apache.struts2.dispatcher.DefaultStaticContentLoader" name="struts" />
    152     <bean type="com.opensymphony.xwork2.UnknownHandlerManager" class="com.opensymphony.xwork2.DefaultUnknownHandlerManager" name="struts" />
    153 
    154     <bean type="org.apache.struts2.dispatcher.DispatcherErrorHandler" name="struts" class="org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler" />
    155     
    156     <constant name="struts.dispatcher.errorHandler" value="struts" />
    157 
    158     <!--  Silly workarounds for OGNL since there is currently no way to flush its internal caches -->
    159     <bean type="ognl.PropertyAccessor" name="java.util.ArrayList" class="com.opensymphony.xwork2.ognl.accessor.XWorkListPropertyAccessor" />
    160     <bean type="ognl.PropertyAccessor" name="java.util.HashSet" class="com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor" />
    161     <bean type="ognl.PropertyAccessor" name="java.util.HashMap" class="com.opensymphony.xwork2.ognl.accessor.XWorkMapPropertyAccessor" />
    162 
    163     <bean type="com.opensymphony.xwork2.security.ExcludedPatternsChecker" name="struts" class="com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker" scope="default" />
    164     <bean type="com.opensymphony.xwork2.security.AcceptedPatternsChecker" name="struts" class="com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker" scope="default" />
    165 
    166     <package name="struts-default" abstract="true">
    167         <result-types>
    168             <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
    169             <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
    170             <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
    171             <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
    172             <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
    173             <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
    174             <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
    175             <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
    176             <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
    177             <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
    178             <result-type name="postback" class="org.apache.struts2.dispatcher.PostbackResult" />
    179         </result-types>
    180 
    181         <interceptors>
    182             <interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/>
    183             <interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
    184             <interceptor name="chain" class="com.opensymphony.xwork2.interceptor.ChainingInterceptor"/>
    185             <interceptor name="conversionError" class="org.apache.struts2.interceptor.StrutsConversionErrorInterceptor"/>
    186             <interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/>
    187             <interceptor name="cookieProvider" class="org.apache.struts2.interceptor.CookieProviderInterceptor"/>
    188             <interceptor name="clearSession" class="org.apache.struts2.interceptor.ClearSessionInterceptor" />
    189             <interceptor name="createSession" class="org.apache.struts2.interceptor.CreateSessionInterceptor" />
    190             <interceptor name="debugging" class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor" />
    191             <interceptor name="execAndWait" class="org.apache.struts2.interceptor.ExecuteAndWaitInterceptor"/>
    192             <interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/>
    193             <interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>
    194             <interceptor name="i18n" class="com.opensymphony.xwork2.interceptor.I18nInterceptor"/>
    195             <interceptor name="logger" class="com.opensymphony.xwork2.interceptor.LoggingInterceptor"/>
    196             <interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>
    197             <interceptor name="scopedModelDriven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"/>
    198             <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>
    199             <interceptor name="actionMappingParams" class="org.apache.struts2.interceptor.ActionMappingParametersInteceptor"/>
    200             <interceptor name="prepare" class="com.opensymphony.xwork2.interceptor.PrepareInterceptor"/>
    201             <interceptor name="staticParams" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>
    202             <interceptor name="scope" class="org.apache.struts2.interceptor.ScopeInterceptor"/>
    203             <interceptor name="servletConfig" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>
    204             <interceptor name="timer" class="com.opensymphony.xwork2.interceptor.TimerInterceptor"/>
    205             <interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/>
    206             <interceptor name="tokenSession" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>
    207             <interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>
    208             <interceptor name="workflow" class="com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"/>
    209             <interceptor name="store" class="org.apache.struts2.interceptor.MessageStoreInterceptor" />
    210             <interceptor name="checkbox" class="org.apache.struts2.interceptor.CheckboxInterceptor" />
    211             <interceptor name="datetime" class="org.apache.struts2.interceptor.DateTextFieldInterceptor" />
    212             <interceptor name="profiling" class="org.apache.struts2.interceptor.ProfilingActivationInterceptor" />
    213             <interceptor name="roles" class="org.apache.struts2.interceptor.RolesInterceptor" />
    214             <interceptor name="annotationWorkflow" class="com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor" />
    215             <interceptor name="multiselect" class="org.apache.struts2.interceptor.MultiselectInterceptor" />
    216             <interceptor name="deprecation" class="org.apache.struts2.interceptor.DeprecationInterceptor" />
    217 
    218             <!-- Basic stack -->
    219             <interceptor-stack name="basicStack">
    220                 <interceptor-ref name="exception"/>
    221                 <interceptor-ref name="servletConfig"/>
    222                 <interceptor-ref name="prepare"/>
    223                 <interceptor-ref name="checkbox"/>
    224                 <interceptor-ref name="datetime"/>
    225                 <interceptor-ref name="multiselect"/>
    226                 <interceptor-ref name="actionMappingParams"/>
    227                 <interceptor-ref name="params">
    228                     <param name="excludeParams">^action:.*,^method:.*</param>
    229                 </interceptor-ref>
    230                 <interceptor-ref name="conversionError"/>
    231                 <interceptor-ref name="deprecation"/>
    232             </interceptor-stack>
    233 
    234             <!-- Sample validation and workflow stack -->
    235             <interceptor-stack name="validationWorkflowStack">
    236                 <interceptor-ref name="basicStack"/>
    237                 <interceptor-ref name="validation"/>
    238                 <interceptor-ref name="workflow"/>
    239             </interceptor-stack>
    240 
    241             <!-- Sample file upload stack -->
    242             <interceptor-stack name="fileUploadStack">
    243                 <interceptor-ref name="fileUpload"/>
    244                 <interceptor-ref name="basicStack"/>
    245             </interceptor-stack>
    246 
    247             <!-- Sample model-driven stack  -->
    248             <interceptor-stack name="modelDrivenStack">
    249                 <interceptor-ref name="modelDriven"/>
    250                 <interceptor-ref name="basicStack"/>
    251             </interceptor-stack>
    252 
    253             <!-- Sample action chaining stack -->
    254             <interceptor-stack name="chainStack">
    255                 <interceptor-ref name="chain"/>
    256                 <interceptor-ref name="basicStack"/>
    257             </interceptor-stack>
    258 
    259             <!-- Sample i18n stack -->
    260             <interceptor-stack name="i18nStack">
    261                 <interceptor-ref name="i18n"/>
    262                 <interceptor-ref name="basicStack"/>
    263             </interceptor-stack>
    264 
    265             <!-- An example of the paramsPrepareParams trick. This stack
    266                  is exactly the same as the defaultStack, except that it
    267                  includes one extra interceptor before the prepare interceptor:
    268                  the params interceptor.
    269 
    270                  This is useful for when you wish to apply parameters directly
    271                  to an object that you wish to load externally (such as a DAO
    272                  or database or service layer), but can't load that object
    273                  until at least the ID parameter has been loaded. By loading
    274                  the parameters twice, you can retrieve the object in the
    275                  prepare() method, allowing the second params interceptor to
    276                  apply the values on the object. -->
    277             <interceptor-stack name="paramsPrepareParamsStack">
    278                 <interceptor-ref name="exception"/>
    279                 <interceptor-ref name="alias"/>
    280                 <interceptor-ref name="i18n"/>
    281                 <interceptor-ref name="checkbox"/>
    282                 <interceptor-ref name="datetime"/>
    283                 <interceptor-ref name="multiselect"/>
    284                 <interceptor-ref name="params">
    285                     <param name="excludeParams">^action:.*,^method:.*</param>
    286                 </interceptor-ref>
    287                 <interceptor-ref name="servletConfig"/>
    288                 <interceptor-ref name="prepare"/>
    289                 <interceptor-ref name="chain"/>
    290                 <interceptor-ref name="modelDriven"/>
    291                 <interceptor-ref name="fileUpload"/>
    292                 <interceptor-ref name="staticParams"/>
    293                 <interceptor-ref name="actionMappingParams"/>
    294                 <interceptor-ref name="params">
    295                     <param name="excludeParams">^action:.*,^method:.*</param>
    296                 </interceptor-ref>
    297                 <interceptor-ref name="conversionError"/>
    298                 <interceptor-ref name="validation">
    299                     <param name="excludeMethods">input,back,cancel,browse</param>
    300                 </interceptor-ref>
    301                 <interceptor-ref name="workflow">
    302                     <param name="excludeMethods">input,back,cancel,browse</param>
    303                 </interceptor-ref>
    304             </interceptor-stack>
    305 
    306             <!-- A complete stack with all the common interceptors in place.
    307                  Generally, this stack should be the one you use, though it
    308                  may do more than you need. Also, the ordering can be
    309                  switched around (ex: if you wish to have your servlet-related
    310                  objects applied before prepare() is called, you'd need to move
    311                  servletConfig interceptor up.
    312 
    313                  This stack also excludes from the normal validation and workflow
    314                  the method names input, back, and cancel. These typically are
    315                  associated with requests that should not be validated.
    316                  -->
    317             <interceptor-stack name="defaultStack">
    318                 <interceptor-ref name="exception"/>
    319                 <interceptor-ref name="alias"/>
    320                 <interceptor-ref name="servletConfig"/>
    321                 <interceptor-ref name="i18n"/>
    322                 <interceptor-ref name="prepare"/>
    323                 <interceptor-ref name="chain"/>
    324                 <interceptor-ref name="scopedModelDriven"/>
    325                 <interceptor-ref name="modelDriven"/>
    326                 <interceptor-ref name="fileUpload"/>
    327                 <interceptor-ref name="checkbox"/>
    328                 <interceptor-ref name="datetime"/>
    329                 <interceptor-ref name="multiselect"/>
    330                 <interceptor-ref name="staticParams"/>
    331                 <interceptor-ref name="actionMappingParams"/>
    332                 <interceptor-ref name="params">
    333                     <param name="excludeParams">^action:.*,^method:.*</param>
    334                 </interceptor-ref>
    335                 <interceptor-ref name="conversionError"/>
    336                 <interceptor-ref name="validation">
    337                     <param name="excludeMethods">input,back,cancel,browse</param>
    338                 </interceptor-ref>
    339                 <interceptor-ref name="workflow">
    340                     <param name="excludeMethods">input,back,cancel,browse</param>
    341                 </interceptor-ref>
    342                 <interceptor-ref name="debugging"/>
    343                 <interceptor-ref name="deprecation"/>
    344             </interceptor-stack>
    345 
    346             <!-- The completeStack is here for backwards compatibility for
    347                  applications that still refer to the defaultStack by the
    348                  old name -->
    349             <interceptor-stack name="completeStack">
    350                 <interceptor-ref name="defaultStack"/>
    351             </interceptor-stack>
    352 
    353             <!-- Sample execute and wait stack.
    354                  Note: execAndWait should always be the *last* interceptor. -->
    355             <interceptor-stack name="executeAndWaitStack">
    356                 <interceptor-ref name="execAndWait">
    357                     <param name="excludeMethods">input,back,cancel</param>
    358                 </interceptor-ref>
    359                 <interceptor-ref name="defaultStack"/>
    360                 <interceptor-ref name="execAndWait">
    361                     <param name="excludeMethods">input,back,cancel</param>
    362                 </interceptor-ref>
    363             </interceptor-stack>
    364 
    365        </interceptors>
    366 
    367         <default-interceptor-ref name="defaultStack"/>
    368 
    369         <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
    370     </package>
    371 
    372 </struts>
    
    
    
    
    
    <!ELEMENT struts ((package|include|bean|constant)*, unknown-handler-stack?)>
    <!ATTLIST struts
        order CDATA #IMPLIED
    >
    
    <!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>
    <!ATTLIST package
        name CDATA #REQUIRED
        extends CDATA #IMPLIED
        namespace CDATA #IMPLIED
        abstract CDATA #IMPLIED
        strict-method-invocation CDATA #IMPLIED
        externalReferenceResolver NMTOKEN #IMPLIED
    >
    
    <!ELEMENT result-types (result-type+)>
    
    <!ELEMENT result-type (param*)>
    <!ATTLIST result-type
        name CDATA #REQUIRED
        class CDATA #REQUIRED
        default (true|false) "false"
    >
    
    <!ELEMENT interceptors (interceptor|interceptor-stack)+>
    
    <!ELEMENT interceptor (param*)>
    <!ATTLIST interceptor
        name CDATA #REQUIRED
        class CDATA #REQUIRED
    >
    
    <!ELEMENT interceptor-stack (interceptor-ref*)>
    <!ATTLIST interceptor-stack
        name CDATA #REQUIRED
    >
    
    <!ELEMENT interceptor-ref (param*)>
    <!ATTLIST interceptor-ref
        name CDATA #REQUIRED
    >
    
    <!ELEMENT default-interceptor-ref (#PCDATA)>
    <!ATTLIST default-interceptor-ref
        name CDATA #REQUIRED
    >
    
    <!ELEMENT default-action-ref (#PCDATA)>
    <!ATTLIST default-action-ref
        name CDATA #REQUIRED
    >
    
    <!ELEMENT default-class-ref (#PCDATA)>
    <!ATTLIST default-class-ref
        class CDATA #REQUIRED
    >
    
    <!ELEMENT global-results (result+)>
    
    <!ELEMENT global-exception-mappings (exception-mapping+)>
    
    <!ELEMENT action ((param|result|interceptor-ref|exception-mapping)*,allowed-methods?)>
    <!ATTLIST action
        name CDATA #REQUIRED
        class CDATA #IMPLIED
        method CDATA #IMPLIED
        converter CDATA #IMPLIED
    >
    
    <!ELEMENT param (#PCDATA)>
    <!ATTLIST param
        name CDATA #REQUIRED
    >
    
    <!ELEMENT result (#PCDATA|param)*>
    <!ATTLIST result
        name CDATA #IMPLIED
        type CDATA #IMPLIED
    >
    
    <!ELEMENT exception-mapping (#PCDATA|param)*>
    <!ATTLIST exception-mapping
        name CDATA #IMPLIED
        exception CDATA #REQUIRED
        result CDATA #REQUIRED
    >
    
    <!ELEMENT allowed-methods (#PCDATA)>
    
    <!ELEMENT include (#PCDATA)>
    <!ATTLIST include
        file CDATA #REQUIRED
    >
    
    <!ELEMENT bean (#PCDATA)>
    <!ATTLIST bean
        type CDATA #IMPLIED
        name CDATA #IMPLIED
        class CDATA #REQUIRED
        scope CDATA #IMPLIED
        static CDATA #IMPLIED
        optional CDATA #IMPLIED
    >
    
    <!ELEMENT constant (#PCDATA)>
    <!ATTLIST constant
        name CDATA #REQUIRED
        value CDATA #REQUIRED
    >
    
    <!ELEMENT unknown-handler-stack (unknown-handler-ref*)>
    <!ELEMENT unknown-handler-ref (#PCDATA)>
    <!ATTLIST unknown-handler-ref
        name CDATA #REQUIRED
    >
    
    
  • 相关阅读:
    java中的CAS
    浅谈尾递归
    LeetCode 第 222 场周赛
    LeetCode 第 216 场周赛
    C++代码整洁之道
    LeetCode 第 211 场周赛
    LeetCode 每日一题 51.N 皇后
    LeetCode 第 201 场周赛
    LeetCode 第 32 场双周赛
    [转]演讲实录丨DevOps之十倍速原则
  • 原文地址:https://www.cnblogs.com/zno2/p/4495227.html
Copyright © 2011-2022 走看看