深入解析Struts2.0的struts.xml配置文件
需积分: 10 74 浏览量
更新于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应用程序的行为。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2007-10-26 上传
2010-09-15 上传
2019-03-18 上传
2012-10-18 上传
2011-07-19 上传
2009-05-07 上传
li445970924
- 粉丝: 8
- 资源: 2
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建