当前位置:首页 > JavaServer Page > 正文内容

Struts2关于struts.xml的说明

canca18年前 (2008-07-03)JavaServer Page420
关于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 -->

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/394.html

标签: JavaServer Page
分享给朋友:

“Struts2关于struts.xml的说明” 的相关文章

在web.xml不认<taglib>解决办法

在web.xml不认<taglib>解决办法: 如果是头是这样的<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application&n...

<html:select>设置默认值

在ActionFrom的reset方法里赋初值就可以,这样不管是调用的action或jsp都会先调用reset方法。...

struts,ajax乱码解决方案

乱码问题好像跟我们中国程序员特别有缘,一直困扰着我们,从开始的JSP乱码问题,STRUTS乱码问题,到现在的AJAX乱码问题,无一不是搞得许多程序员焦头烂额的,整天骂XXX产品对中文支持不了,UTF-8无法使用中文啊什么的,其实这里面被骂的产品中其实99%以上是对中文支持非常好的,而出现乱码的原...

JSP动态include与静态include的区别

动态INCLUDE   jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE   用include伪码实现,定不会检...

FCKeditor的秘密

       哈哈。。由于项目的需要,这几天一直在搞FCKeditor。其实,FCKeditor配置很简单。但不知道怎么样。在我的项目里FCKeditor总不能在FireFox里显示。开始我还以为是我的配置有问题。但我从头到尾检查了配置文件...

用java把google和baidu的URL编码还原成明文字串ZT

因为在做链接来源统计的时候需要把 http://www.baidu.com/baidu?word= ... B%F7&tn=myie2dg  这类的URL编码还原成明文字串,一般大部分的网站都是用普通的URL编码形式,如上面链接中的badu,这种很容易转换和还原,Java...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。