Struts2 Struts.xml DTD 说明

转自:http://blog.csdn.net/cuixiuqin1954/article/details/4228741

 

关于Struts2中的核心配置文件struts.xml,就其DTD(Document Type Definition)文件进行一下说明

<?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.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

-->



<!ELEMENT struts (package|include|bean|constant)*>



<!--



struts标签下可以出现下面标签0次或多次



package:将多个action组织成一个package的方式。



include:用来包含一个配置文件,目的是为了配置文件能够分离。



bean:被容器的框架创建,并注入到框架内部的对象。主要用来关联第三方类库,比如spring,一般应用程序不需要配置。



contant:用来设置Struts2运行的环境。效果等同于在struts.properties中配置,或者web.xml中配置FilterDispatcher的init param



-->



<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, global-results?, global-exception-mappings?, action*)>



<!--



package标签下可以出现下面标签0次或者1次



result-types:用来定义结果类型



interceptors:用来定义拦截器



default-interceptor-ref:为package定义默认使用的拦截器,这个package中所有的action(如果这个action没有设置自己使用的拦截器)都会调用设置的默认拦截器



default-action-ref:这个package默认使用的action



global-results:为这个package设置共通使用的result,对这个package下的所有action都有效



global-exception-mappings:为这个package定义共通的当发生异常的时候,所用到的result,需与global-results结合使用



package标签下可以出现下面标签0次或者多次



action:为这个package定义action信息。



-->

<!ATTLIST package

    name CDATA #REQUIRED

    extends CDATA #IMPLIED

    namespace CDATA #IMPLIED

    abstract CDATA #IMPLIED

    externalReferenceResolver NMTOKEN #IMPLIED

>



<!--



package标签可以必须出现下面的属性



name:为此package定义一个唯一的标识



package标签可以出现下面的属性(也可不出现)



extends:此package所继承的package



namespace:此package的命名空间(其下所有的result和action都会在RootContext后加上设置的命名空间),如果不设定,默认为RootContext。



abstract:设置此package为抽象的,抽象的package里不能存在action。此属性的值为true或者false,默认为false



externalReferenceResolver:用来整合第三方类库,如spring



-->



<!ELEMENT result-types (result-type+)>



<!--



result-types标签下必须出现result-type标签1次或者多次



result-type:用来定义一个结果类型



-->



<!ELEMENT result-type (param*)>



<!--



result-type标签下可以出现param标签0次或者多次



用来定义此结果类型需要用到的参数



-->

<!ATTLIST result-type

    name CDATA #REQUIRED

    class CDATA #REQUIRED

    default (true|false) "false"

>



<!--



result-type标签必须包含下面属性



name:用来唯一标识这个结果类型



class:此结果类型的java class的位置



default:是否设置为默认的结果类型,默认值为false(不设置为默认的结果类型)。如果设置为默认的结果类型,则如果一个result没有指定type将会默认使用此result type。



-->



<!ELEMENT interceptors (interceptor|interceptor-stack)+>



<!--



interceptors标签下必须出现下面的标签1次或者多次(两者任一,或者同时)



interceptor:用来定义一个拦截器



interceptor-stack:用来定义一个拦截器栈



-->



<!ELEMENT interceptor (param*)>



<!--



interceptor标签下可以出现param标签0次或者多次



param:用来设置此拦截器需要的参数



-->

<!ATTLIST interceptor

    name CDATA #REQUIRED

    class CDATA #REQUIRED

>



<!--



interceptor必须包含下面属性



name:用来唯一标识此拦截器



class:用来指定此拦截器java class的位置



-->



<!ELEMENT interceptor-stack (interceptor-ref+)>



<!--



interceptor-stack标签下必须出现interceptor-ref标签1次或多次



interceptor-ref:用来指定此拦截器栈使用的拦截器



-->

<!ATTLIST interceptor-stack

    name CDATA #REQUIRED

>



<!--



interceptor-stack标签必须包含name属性,用来唯一标识此拦截器栈



-->



<!ELEMENT interceptor-ref (param*)>



<!--



interceptor-ref标签下可以出现param标签0次或多次,用来设置使用拦截器时所需的参数。



-->

<!ATTLIST interceptor-ref

    name CDATA #REQUIRED

>



<!--



interceptor-ref标签必须包含name属性,用来指定使用的拦截器名称或者拦截器栈的名称。



-->



<!ELEMENT default-interceptor-ref (param*)>



<!--



default-interceptor-ref标签下可以出现param标签0次或多次,用来设置使用默认拦截器时所需的参数。



-->

<!ATTLIST default-interceptor-ref

    name CDATA #REQUIRED

>



<!--



default-interceptor-ref标签必须包含name属性,用来指定默认使用的拦截器名称或者拦截器栈的名称。



-->



<!ELEMENT default-action-ref (param*)>



<!--



default-action-ref标签下可以出现param标签0次或多次,用来设置使用默认action时所需的参数。



-->

<!ATTLIST default-action-ref

    name CDATA #REQUIRED

>



<!--



default-action-ref标签必须包含name属性,用来指定默认使用的action名称。



-->



<!ELEMENT global-results (result+)>



<!--



global-results标签下必须出现result标签1次或者多次,用来设置共通的result



-->



<!ELEMENT global-exception-mappings (exception-mapping+)>



<!--



global-exception-mappings标签下必须出现exception-mapping标签1次或者多次,用来指定共通的,当出现exception时,所参照的result



-->



<!ELEMENT action (param|result|interceptor-ref|exception-mapping)*>



<!--



action标签下可以出现下面标签0次或者多次



param:用来设置调用次action所用到的参数



result:为此action定义结果(可以是一个jsp或者是一个action)



interceptor-ref:为此action设置使用的拦截器



exception-mapping:为此action定义,当有异常发生时,所参照的result



-->

<!ATTLIST action

    name CDATA #REQUIRED

    class CDATA #IMPLIED

    method CDATA #IMPLIED

    converter CDATA #IMPLIED

>



<!--



action标签必须包含下面这些属性



name:用来唯一标识此action



class:用来指定次action的java class的位置



action标签可以包含下面这些属性



method:为此action指定调用的方法,不指定时默认调用execute方法



converter:为此action指定使用的converter,不指定时使用默认的converter



-->



<!ELEMENT param (#PCDATA)>

<!ATTLIST param

    name CDATA #REQUIRED

>



<!--



param标签必须包含name属性



-->



<!ELEMENT result (#PCDATA|param)*>



<!--



result标签下可以出现param标签0次或者多次



-->

<!ATTLIST result

    name CDATA #IMPLIED

    type CDATA #IMPLIED

>



<!--



result标签可以包含下面属性



name:用来标识此result



type:结果的类型



-->



<!ELEMENT exception-mapping (#PCDATA|param)*>



<!--



exception-mapping标签下可以出现param标签0次或者多次



-->

<!ATTLIST exception-mapping

    name CDATA #IMPLIED

    exception CDATA #REQUIRED

    result CDATA #REQUIRED

>



<!--



exception-mapping标签可以包含下面属性



name:用来标识此exception-mapping



exception-mapping标签必须包含下面属性



exception:发生的exception的类型



result:当发生exception时所参照的result



-->



<!ELEMENT include (#PCDATA)>

<!ATTLIST include

    file CDATA #REQUIRED

>



<!--



include标签必须包含file属性,用来指定所要include的文件的位置。



-->



<!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    

>



<!--



constant标签必须包含下面属性



name:指定constant的key



value:指定constant的value



-->



<!-- END SNIPPET: strutsDtd -->

 

你可能感兴趣的:(struts.xml)