Struts1配置详解:Action配置与工作流程
需积分: 9 56 浏览量
更新于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的属性,实现各种复杂的业务逻辑和页面跳转。
2013-09-05 上传
2013-12-17 上传
点击了解资源详情
zmyzxq
- 粉丝: 3
- 资源: 22
最新资源
- 高效办公必备:可易文件夹批量生成器
- 吉林大学图形学与人机交互课程作业解析
- 8086与8255打造简易乒乓球游戏机教程
- Win10下C++开发工具包:Bongo Cat Mver、GLEW、GLFW
- Bootstrap前端开发:六页果蔬展示页面
- MacOS兼容版VSCode 1.85.1:最后支持10.13.x版本
- 掌握cpp2uml工具及其使用方法指南
- C51单片机星形流水灯设计与Proteus仿真教程
- 深度远程启动管理器使用教程与工具包
- SAAS云建站平台,一台服务器支持数万独立网站
- Java开发的博客API系统:完整功能与接口文档
- 掌握SecureCRT:打造高效SSH超级终端
- JAVA飞机大战游戏实现与源码分享
- SSM框架开发的在线考试系统设计与实现
- MEMS捷联惯导解算与MATLAB仿真指南
- Java实现的学生考试系统开发实战教程