深入解析Struts2.0的struts.xml配置文件

需积分: 10 8 下载量 148 浏览量 更新于2024-09-20 收藏 3KB TXT 举报
"struts2.0中struts.xml配置文件详解" 在Struts2.0框架中,`struts.xml`配置文件是整个应用程序的核心,它定义了框架的行为、Action映射、拦截器以及结果视图等关键元素。这个文件采用XML格式编写,遵循特定的DTD(Document Type Definition),确保配置的正确性。以下是对`struts.xml`配置文件的详细解释: 首先,文件以`<!DOCTYPE>`声明开始,指定了Struts2的配置文档类型和版本。在这个例子中,使用的DTD是`struts-2.0.dtd`,这告诉解析器如何理解文件中的元素。 ```xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> ``` 接着,`<struts>`是顶级容器,用于包含所有配置。通常,我们会包含默认的配置文件`struts-default.xml`,以获取Struts2的基本行为和默认设置: ```xml <struts> <include file="struts-default.xml"></include> ``` 在`<struts>`标签内部,`<package>`元素定义了一个包,它是一组Action、拦截器和结果的集合。每个`<package>`可以扩展其他包,继承其属性和配置: ```xml <package name="com.kay.struts2" extends="struts-default" namespace="/test"> ``` - `name`属性:定义包的唯一名称。 - `extends`属性:指定要扩展的父包,这里扩展了`struts-default`包。 - `namespace`属性:设置包的作用域,即Action的前缀路径,影响URL的生成。 在`<package>`内,`<interceptors>`元素定义拦截器,这些拦截器会按照声明的顺序执行,对Action调用进行处理: ```xml <interceptors> <interceptor name="timer" class="com.kay.timer"></interceptor> <interceptor name="logger" class="com.kay.logger"></interceptor> ... </interceptors> ``` - `name`属性:定义拦截器的名称。 - `class`属性:指定拦截器实现类的全限定名。 `<interceptor-stack>`定义了一个拦截器栈,将多个拦截器组合在一起,它们会按栈的顺序执行: ```xml <interceptor-stack name="mystack"> <interceptor-ref name="timer"></interceptor-ref> <interceptor-ref name="logger"></interceptor-ref> </interceptor-stack> ``` - `name`属性:定义拦截器栈的名称。 - `<interceptor-ref>`:引用已定义的拦截器。 `<default-interceptor-ref>`元素定义了默认的拦截器栈,所有Action如果没有指定拦截器栈,都会使用这个默认栈: ```xml <default-interceptor-ref name="mystack"></default-interceptor-ref> ``` Action的配置通常在`<package>`内通过`<action>`元素完成,但在这个例子中没有给出。`<action>`元素定义了Action的名称、类、映射的URL路径和结果视图等。例如: ```xml <action name="saveUser" class="com.kay.actions.SaveUserAction"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> ``` - `name`属性:Action的名称,用于请求映射。 - `class`属性:Action类的全限定名。 - `<result>`元素:定义了不同结果视图的映射,根据Action执行后的返回值(如"success"或"error")来决定跳转的页面。 此外,`<package>`还可以包含其他元素,比如类型转换器(`<converters>`)、异常处理器(`<global-exception-mappings>`)、常量(`<constant>`)等。`struts.xml`配置文件提供了灵活的配置机制,让开发者能够精确控制Struts2应用程序的行为。