Struts1配置详解:Action配置与工作流程
需积分: 9 13 浏览量
更新于2024-09-15
收藏 145KB DOC 举报
"Struts1配置详解"
Struts1是一个经典的Java Web框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。在Struts1中,`struts-config.xml`是核心配置文件,它定义了应用程序的行为和组件间的交互。本篇将深入解析Struts1配置文件中的各项标签属性以及工作流程。
### Struts1工作流程
1. 用户请求:用户通过浏览器向服务器发送请求,通常是一个JSP页面的URL。
2. ActionServlet拦截:Struts1的ActionServlet拦截到HTTP请求,该Servlet是Struts1框架的核心,负责协调其他组件。
3. process()方法:ActionServlet的`doGet()`或`doPost()`方法调用`process()`,确定合适的子应用模块。
4. RequestProcessor处理:选定子应用模块后,调用RequestProcessor的`process()`方法,传入request和response对象。
5. Action实例化:RequestProcessor的`process()`方法进一步调用`ProcessActionCreate()`,检查Action缓存。若无Action实例,则创建并存入缓存。
6. 执行Action:调用Action实例的`execute()`方法,此方法根据业务逻辑处理请求,并返回一个表示结果的ActionForward对象。
7. 转向视图:根据`execute()`返回的ActionForward,决定显示哪个JSP页面或其他视图资源。
### `struts-config.xml`配置文件中的`<action>`标签属性
1. path:定义请求映射的URL路径,不需包含后缀,如`.do`。Struts1会自动添加。
2. type:指定处理请求的Action类全限定名。
3. name:表单bean的名字,如果请求参数来源于表单,Struts会根据这个名字查找对应的bean。
4. scope:表单bean的作用域,可选`request`、`session`。
5. attribute:用于存储ActionForm的属性名称,可以在Action中通过`ActionMapping.getAttribute()`获取。
6. input:当Action的`execute()`方法返回错误时,重定向到的JSP页面。
7. forward:正常执行后的转发路径,对应ActionForward的`name`属性。
8. include:类似于`forward`,但使用`<jsp:include>`标签,可以在同一页面中插入内容。
9. unknown:当请求路径未在配置中定义时,如果设置为`true`,Struts1会尝试找到一个默认的Action处理。
10. parameter:用于指定请求参数,可以替代`name`属性。
11. className:早期版本Struts1中的属性,用于指定Action类,现已被`type`属性取代。
12. validate:如果设为`true`,表示在执行Action之前,会进行表单验证。
### `<forward>`子标签
`<forward>`标签定义了Action执行成功后要跳转的页面。其`name`属性是逻辑名称,`path`属性是实际的JSP或HTML页面路径。
### 总结
Struts1的配置文件是连接用户请求和业务逻辑的关键,通过合理配置`struts-config.xml`,可以灵活控制应用程序的行为。了解每个属性的作用和用法,能帮助开发者更有效地构建和维护Struts1应用。在实际开发中,根据项目需求,我们可以定制Action的属性,实现各种复杂的业务逻辑和页面跳转。
2010-05-01 上传
2024-11-16 上传
2024-11-16 上传
zmyzxq
- 粉丝: 3
- 资源: 21
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器