Struts2.0配置详解:struts.xml与package、namespace及拦截器
3星 · 超过75%的资源 需积分: 10 85 浏览量
更新于2024-09-15
收藏 14KB DOCX 举报
"这篇文档详细解释了Struts2.0框架中的struts.xml配置文件,包括`include`节点和`package`节点的使用方法。`include`节点用于组件化,可以将不同功能模块的配置分别存储在独立的XML文件中,并通过引用整合。而`package`节点则用于组织Action,形成模块,它可以通过`extends`属性继承其他package,并通过`namespace`定义URL路径。此外,还展示了如何配置拦截器和拦截器栈。"
在Struts2框架中,`struts.xml`配置文件是核心配置文件,负责定义应用的行为和结构。文件的开头通常会包含DTD(Document Type Definition)声明,确保XML文档遵循正确的结构。例如:
```xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
```
`<struts>`元素是整个配置的根元素,它包含了所有其他配置元素。
1. `include`节点:它是实现组件化配置的关键。通过`<include file="...">`可以引入其他的XML配置文件,这样可以让配置文件更易于管理和维护。例如,引入`struts-default.xml`来获取默认的配置,这样开发者就不需要重复定义已经存在的默认行为。
2. `package`节点:用于组织多个Action,创建模块化的结构。每个`package`都具有唯一的名称,可以有选择地扩展其他`package`。`package`的属性包括:
- `name`:标识包的唯一名称。
- `extends`:指定要继承的父`package`,继承后会合并父`package`的配置。
- `abstract`:如果设为`true`,表示这是一个抽象`package`,不能直接定义Action,通常用于提供通用配置。
- `namespace`:定义Action的命名空间,影响URL路径。例如,`/test`命名空间会导致Action URL为`http://localhost:8080/struts2/test/XX.action`。
3. `interceptors`和`interceptor-stack`:这两部分是配置拦截器的关键。`<interceptor>`用于定义单个拦截器,如:
```xml
<interceptor name="timer" class="com.kay.timer"></interceptor>
<interceptor name="logger" class="com.kay.logger"></interceptor>
```
而`<interceptor-stack>`定义了一个拦截器栈,可以包含多个`interceptor-ref`,它们按照声明的顺序执行:
```xml
<interceptor-stack name="mystack">
<interceptor-ref name="timer"></interceptor-ref>
<interceptor-ref name="logger"></interceptor-ref>
</interceptor-stack>
```
4. Action配置:`package`内还可以定义具体的Action,指定Action的类、结果和其他配置。例如:
```xml
<action name="login" class="com.kay.struts2.LoginAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
```
这里定义了一个名为`login`的Action,使用`LoginAction`类处理请求,根据返回的结果名(`success`或`error`)转发到对应的JSP页面。
通过理解并熟练运用这些配置,开发者可以灵活地构建Struts2应用程序,实现各种复杂的业务逻辑和控制流程。
2010-09-15 上传
2012-11-16 上传
点击了解资源详情
2007-10-26 上传
2019-03-18 上传
2012-10-18 上传
2011-07-19 上传
2009-05-07 上传
2010-11-15 上传
luohaobubu
- 粉丝: 5
- 资源: 16
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫