struts2中对配置文件struts-default.xml 的解释
时间:2021-12-14 作者:匿名
每学习一个框架,我们都免不了要学习一些关于的配置文件,struts2也不例外,下面我就讲一下struts2中几个主要的配置文件。
1) struts-域名
这个文件是struts2框架默认加载的配置文件。它定义struts2一些核心的bean和拦截器。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://域名/dtds/struts-域名"> <struts> <!--struts2中工厂bean的定义--> <bean class="域名域名ctFactory" name="xwork" /> <bean type="域名域名ctFactory" name="struts" class="域名域名tsObjectFactory" /> <bean type="域名域名onProxyFactory" name="xwork" class="域名域名ultActionProxyFactory"/> <bean type="域名域名onProxyFactory" name="struts" class="域名域名tsActionProxyFactory"/> <!--类型检测bean的定义--> <bean type="域名域名ctTypeDeterminer" name="tiger" class="域名域名ricsObjectTypeDeterminer"/> <bean type="域名域名ctTypeDeterminer" name="notiger" class="域名域名ultObjectTypeDeterminer"/> <bean type="域名域名ctTypeDeterminer" name="struts" class="域名域名ultObjectTypeDeterminer"/> <!--文件上传bean的定义--> <bean type="域名域名域名onMapper" name="struts" class="域名域名域名ultActionMapper" /> <bean type="域名域名域名onMapper" name="composite" class="域名域名域名ositeActionMapper" /> <bean type="域名域名域名onMapper" name="restful" class="域名域名域名fulActionMapper" /> <bean type="域名域名域名onMapper" name="restful2" class="域名域名域名ful2ActionMapper" /> <bean type="域名域名域名iPartRequest" name="struts" class="域名域名域名rtaMultiPartRequest" scope="default" optional="true"/> <bean type="域名域名域名iPartRequest" name="jakarta" class="域名域名域名rtaMultiPartRequest" scope="default" optional="true" /> <!--标签库bean的定义--> <bean type="域名域名ibrary" name="s" class="域名域名ultTagLibrary" /> <!--一些常用视图bean的定义--> <bean class="域名域名域名markerManager" name="struts" optional="true"/> <bean class="域名域名域名cityManager" name="struts" optional="true" /> <bean class="域名域名域名lateEngineManager" /> <bean type="域名域名域名lateEngine" name="ftl" class="域名域名域名markerTemplateEngine" /> <bean type="域名域名域名lateEngine" name="vm" class="域名域名域名cityTemplateEngine" /> <bean type="域名域名域名lateEngine" name="jsp" class="域名域名域名emplateEngine" /> <!--类型转换bean的定义--> <bean type="域名域名kConverter" name="xwork1" class="域名域名kConverter" /> <bean type="域名域名kConverter" name="struts" class="域名域名tationXWorkConverter" /> <bean type="域名域名Provider" name="xwork1" class="域名域名ProviderSupport" /> <bean type="域名域名Provider" name="struts" class="域名域名ProviderSupport" /> <!-- Struts2中一些可以静态注入的bean,也就是不需要实例化的 --> <bean class="域名域名ctFactory" static="true" /> <bean class="域名域名kConverter" static="true" /> <bean class="域名域名ValueStack" static="true" /> <bean class="域名域名atcher" static="true" /> <bean class="域名域名ude" static="true" /> <bean class="域名域名erDispatcher" static="true" /> <bean class="域名域名.ContextUtil" static="true" /> <bean class="域名域名.UrlHelper" static="true" />
<!-- 定义Struts2默认包--> <package name="struts-default" abstract="true"> <!-- 结果类型的种类--> <result-types> <result-type name="chain" class="域名域名onChainResult"/> <result-type name="dispatcher" class="域名域名letDispatcherResult" default="true"/> <result-type name="freemarker" class="域名域名域名markerResult"/> <result-type name="httpheader" class="域名域名HeaderResult"/> <result-type name="redirect" class="域名域名letRedirectResult"/> <result-type name="redirectAction" class="域名域名letActionRedirectResult"/> <result-type name="stream" class="域名域名amResult"/> <result-type name="velocity" class="域名域名cityResult"/> <result-type name="xslt" class="域名域名.XSLTResult"/> <result-type name="plainText" class="域名域名nTextResult" /> <result-type name="redirect-action" class="域名域名letActionRedirectResult"/> <result-type name="plaintext" class="域名域名nTextResult" /> </result-types>
<!--struts2中拦截器的定义--> <interceptors> <!--实现在不同请求中相似参数别名的准换--> <interceptor name="alias" class="域名域名sInterceptor"/> <!--与Spring整合时自动装配的拦截器--> <interceptor name="autowiring" class="域名域名域名onAutowiringInterceptor"/> <!--构建一个action链,使当前action可以访问前一个action,与<result-type="chain" />配合使用--> <interceptor name="chain" class="域名域名ningInterceptor"/> <!--负责类型转换的拦截器--> <interceptor name="conversionError" class="域名域名tsConversionErrorInterceptor"/> <!--使用配置的name,value来是指cookies --> <interceptor name="cookie" class="域名域名ieInterceptor"/> <!--负责创建httpSession--> <interceptor name="createSession" class="域名域名teSessionInterceptor" /> <!--输出调试信息--> <interceptor name="debugging" class="域名域名域名ggingInterceptor" /> <!--扩展引用--> <interceptor name="externalRef" class="域名域名rnalReferencesInterceptor"/> <!--后台执行action负责发送等待画面给用户--> <interceptor name="execAndWait" class="域名域名uteAndWaitInterceptor"/> <!--异常处理--> <interceptor name="exception" class="域名域名ptionMappingInterceptor"/> <!--文件上传,解析表单域的内容--> <interceptor name="fileUpload" class="域名域名UploadInterceptor"/> <!--支持国际化--> <interceptor name="i18n" class="域名域名Interceptor"/> <!--日志记录--> <interceptor name="logger" class="域名域名ingInterceptor"/> <!--模型拦截器,当action实现了ModelDriven接口时,负责把getModel的结果放入valueStack中--> <interceptor name="modelDriven" class="域名域名lDrivenInterceptor"/> <!--有生命周期的ModelDriven--> <interceptor name="scopedModelDriven" class="域名域名edModelDrivenInterceptor"/> <!--负责解析请求中的参数,并赋值给action中对应的属性--> <interceptor name="params" class="域名域名metersInterceptor"/> <!--实现该Preparable接口的action,会调用拦截器的prepare方法--> <interceptor name="prepare" class="域名域名areInterceptor"/> <!--负责将action 标签下的param参数值传递给action实例--> <interceptor name="staticParams" class="域名域名icParametersInterceptor"/> <!--范围转换--> <interceptor name="scope" class="域名域名eInterceptor"/> <!--用于访问Servlet API--> <interceptor name="servletConfig" class="域名域名letConfigInterceptor"/> <interceptor name="sessionAutowiring" class="域名域名域名ionContextAutowiringInterceptor"/> <!--输出action执行时间--> <interceptor name="timer" class="域名域名rInterceptor"/> <!--防止表单重复提交--> <interceptor name="token" class="域名域名nInterceptor"/> <!--与token拦截器相似,只是把token保存到HttpSession--> <interceptor name="tokenSession" class="域名域名nSessionStoreInterceptor"/> <!--负责表单字段的验证 *-域名--> <interceptor name="validation" class="域名域名域名tationValidationInterceptor"/> <!--负责执行action的validate()--> <interceptor name="workflow" class="域名域名ultWorkflowInterceptor"/> <!--存储和重新获取Action 消息/错误/字段错误为Action,实现ValidationAware接口到seesion--> <interceptor name="store" class="域名域名ageStoreInterceptor" /> <!--添加自动checkbox处理代码,这样检探测checkbox和添加它作为一个参数使用默认值(通常’false’).使用一个指定名字隐藏字段探测没提交的checkbox--> <interceptor name="checkbox" class="域名域名kboxInterceptor" /> <interceptor name="profiling" class="域名域名ilingActivationInterceptor" /> <!--JAAS服务拦截器--> <interceptor name="roles" class="域名域名sInterceptor" /> <!-- 一个基本的拦截器栈 --> <interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack> <!-- 简单的validtion和webflow栈 --> <interceptor-stack name="validationWorkflowStack"> <interceptor-ref name="basicStack"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"/> </interceptor-stack> <!-- 文件上传的拦截器栈 --> <interceptor-stack name="fileUploadStack"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!-- model-driven 栈 --> <interceptor-stack name="modelDrivenStack"> <interceptor-ref name="modelDriven"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!-- action链的拦截器栈 --> <interceptor-stack name="chainStack"> <interceptor-ref name="chain"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!-- i18n 拦截器栈 --> <interceptor-stack name="i18nStack"> <interceptor-ref name="i18n"/> <interceptor-ref name="basicStack"/> </interceptor-stack> <!-- 结合preparable和ModenDriven拦截器--> <interceptor-stack name="paramsPrepareParamsStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="params"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="i18n"/> <interceptor-ref name="chain"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel</param> </interceptor-ref> </interceptor-stack> <!--定义默认的拦截器栈 --> <interceptor-stack name="defaultStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servletConfig"/> <interceptor-ref name="prepare"/> <interceptor-ref name="i18n"/> <interceptor-ref name="chain"/> <interceptor-ref name="debugging"/> <interceptor-ref name="profiling"/> <interceptor-ref name="scopedModelDriven"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="params"> <param name="excludeParams">dojo\..*</param> </interceptor-ref> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> </interceptor-stack> <interceptor-stack name="completeStack"> <interceptor-ref name="defaultStack"/> </interceptor-stack> <interceptor-stack name="executeAndWaitStack"> <interceptor-ref name="execAndWait"> <param name="excludeMethods">input,back,cancel</param> </interceptor-ref> <interceptor-ref name="defaultStack"/> <interceptor-ref name="execAndWait"> <param name="excludeMethods">input,back,cancel</param> </interceptor-ref> </interceptor-stack> <interceptor name="external-ref" class="域名域名rnalReferencesInterceptor"/> <interceptor name="model-driven" class="域名域名lDrivenInterceptor"/> <interceptor name="static-params" class="域名域名icParametersInterceptor"/> <interceptor name="scoped-model-driven" class="域名域名edModelDrivenInterceptor"/> <interceptor name="servlet-config" class="域名域名letConfigInterceptor"/> <interceptor name="token-session" class="域名域名nSessionStoreInterceptor"/> </interceptors> <!--定义默认拦截器为"defaultStack"--> <default-interceptor-ref name="defaultStack"/> </package> </struts>