上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.3.4 struts.xml文件结构
struts.xml文件是整个Struts 2框架的核心,下面提供了一个最完整的struts.xml文件,这个文件没有任何实际意义,仅仅是一个struts.xml文件示范。
<?xml version="1.0" encoding="GBK"?> <!-- 下面指定Struts 2.3配置文件的DTD信息 --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <!-- struts是Struts 2配置文件的根元素 --> <struts order=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <constant name="" value="" /> <!-- 下面元素可以出现0次,也可以出现无数次 --> <bean type="" name="" class="" scope="" static="" optional="" /> <!-- 下面元素可以出现0次,也可以出现无数次 --> <include file="" /> <!-- package元素是Struts配置文件的核心,该元素可以出现0次,或者无数次 --> <package name="必填的包名" extends="" namespace="" abstract="" externalReferenceResolver="" strict-method-invocation=""> <!-- 该元素可以出现,也可以不出现,最多出现一次 --> <result-types> <!-- 该元素必须出现,可以出现无数次--> <result-type name="" class="" default="true|false"> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </result-type> </result-types> <!-- 该元素可以出现,也可以不出现,最多出现一次 --> <interceptors> <!-- 该元素的interceptor元素和interceptor-stack至少出现其中之一 也可以二者都出现 --> <!-- 下面元素可以出现0次,也可以出现无数次 --> <interceptor name="" class=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </interceptor> <!-- 下面元素可以出现0次,也可以出现无数次 --> <interceptor-stack name=""> <!-- 该元素必须出现,可以出现无数次--> <interceptor-ref name=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </interceptor-ref> </interceptor-stack> </interceptors> <!-- 下面元素可以出现0次,也可以出现无数次 --> <default-interceptor-ref name=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param> </default-interceptor-ref> <!-- 下面元素可以出现0次,也可以出现无数次 -->
<default-action-ref name=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </default-action-ref>? <!-- 下面元素可以出现0次,也可以出现无数次 --> <global-results> <!-- 该元素必须出现,可以出现无数次--> <result name="" type=""> <!-- 该字符串内容可以出现0次或多次 --> 映射资源 <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </result> </global-results> <!-- 下面元素可以出现0次,也可以出现无数次 --> <global-exception-mappings> <!-- 该元素必须出现,可以出现无数次--> <exception-mapping name="" exception="" result=""> 异常处理资源 <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </exception-mapping> </global-exception-mappings> <action name="" class="" method="" converter=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* <!-- 下面元素可以出现0次,也可以出现无数次 --> <result name="" type=""> 映射资源 <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </result> <!-- 下面元素可以出现0次,也可以出现无数次 --> <interceptor-ref name=""> <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </interceptor-ref> <!-- 下面元素可以出现0次,也可以出现无数次 --> <exception-mapping name="" exception="" result=""> 异常处理资源 <!-- 下面元素可以出现0次,也可以出现无数次 --> <param name="参数名">参数值</param>* </exception-mapping> <!-- 下面元素可以出现0次或1次 --> <allow-methods></allowed-methods> </action> </package>* <!-- unknown-handler-stack元素可以出现0次或1次 --> <unknown-handler-stack> <!-- unknown-handler-ref元素可以出现0次或多次 --> <unknown-handler-ref name=" ">...</unknown-handler-ref>* </unknown-handler-stack>? <struts>
上面的struts.xml配置文件是一个非常全面的配置文件,包含了Struts 2的全部配置元素。上面的配置文件主要用于帮助对DTD不太熟悉的读者尽快熟悉Struts 2配置文件的结构。
提示:
Struts 2.3.1.2引入了一个新版本的DTD,即struts-2.3.dtd,这个版本的DTD主要为struts元素新增了order属性,通过该属性可指定加载Struts 2配置文件的优先顺序。
实际上,如果读者需要熟悉XML文件的DTD(元素类型定义)语法,通过查看Struts 2配置文件的 DTD 信息,同样可以了解 Struts 2 配置文件的结构,Struts 2 的 DTD 文件就是struts2-core-2.3.1.2.jar压缩包里的struts-2.3.dtd文件。
通过上面讲解,读者应该大致掌握了Struts 2配置文件的结构,Struts 2的各种核心组件都是通过该文件进行配置、管理的。下面将会详细介绍Struts 2核心组件的开发、配置。