Struts1配置详解:Action配置与工作流程

需积分: 9 3 下载量 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的属性,实现各种复杂的业务逻辑和页面跳转。