zoukankan      html  css  js  c++  java
  • 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 -->
  • 相关阅读:
    2020阿里最新出品的泰山版Java开发手册,告别垃圾代码
    freecplus框架-目录操作
    freecplus框架简介
    freecplus框架-加载参数文件
    freecplus框架-xml解析
    freecplus框架-tcp网络通信
    freecplus框架-PostgreSQL数据库操作
    freecplus框架-Oracle数据库操作
    freecplus框架-MySQL数据库操作
    freecplus框架-ftp客户端
  • 原文地址:https://www.cnblogs.com/x_wukong/p/3912957.html
Copyright © 2011-2022 走看看