Struts2的基本配置(下)
(4) struts.xml文件结构
struts.xml文件时整个Struts2框架的核心,下面提供了一个最完整的struts.xml文件,这个文件没有任何实际意义,仅仅是一个struts.xml文件的示范:
[xhtml] view plaincopyprint?
<?xml version="1.0" encoding="UTF-8"?>
<!-- 下面指定Struts2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 下面的元素可以出现0次也可以无限多次 -->
<constant name="" value=""/>
<!-- 下面的元素可以出现0次也可以无限多次 -->
<bean type="" name="" class="" scope="" static="" optional=""/>
<!-- 下面的元素可以出现0次也可以无限多次 -->
<include file=""/>
<!-- package元素师Struts配置文件的核心,该元素可以出现0此,或者无限多次 -->
<package name="必须要填写的包" extends="" namespace="" abstract="">
<!-- 该元素可以出现,也可以不出现,最多出现一次 -->
<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>
<global-results>
<!-- 该元素必须出现,可以出现无限多次 -->
<result name="" type="">
<!-- 下面的元素可以出现0次也可以无限多次 -->
<param name="参数名">参数值</param>
</result>
</global-results>
<!-- 下面的元素可以出现0次也可以无限多次 -->
<global-exception-mappings>
<!-- 该元素必须出现,可以出现无限多次 -->
<exception-mapping name="" result="" exception="">
<!-- 下面的元素可以出现0次也可以无限多次 -->
<param name="参数名">参数值</param>
</exception-mapping>
</global-exception-mappings>
<action name="" class="" method="" converter="">
<param name=""></param>
<result name="" type="">
<param name=""></param>
</result>
<interceptor-ref name="">
<param name=""></param>
</interceptor-ref>
<exception-mapping name="" result="" exception="">
<param name=""></param>
</exception-mapping>
</action>
</package>
</struts>
上面的struts.xml配置文件是一个非常全面的配置文件,包含了Struts2的全部配置元素.
[xhtml] view plaincopyprint?
<?xml version="1.0" encoding="UTF-8"?>
<!-- START SNIPPET: strutsDtd -->
<!--
Struts configuration DTD.
Use the following DOCTYPE
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
-->
<!ELEMENT struts ((package|include|bean|constant)*, unknown-handler-stack?)>
<!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
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)*>
<!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 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
>
可以通过查看Struts2配置文件的DTD信息,来了解Struts2配置文件的结构.