Struts2框架解析与Action类设计指南

需积分: 10 0 下载量 36 浏览量 更新于2024-07-24 收藏 128KB DOC 举报
"Java_Web程序设计教程_范立峰第8章习题答案" Java Web程序设计中的一个重要框架是Struts2,它基于MVC(Model-View-Controller)设计模式,这种模式将应用程序分为三个主要组件:模型、视图和控制器。模型层负责业务逻辑和数据处理,视图层则呈现用户界面,而控制器接收用户输入,协调模型和视图,确保它们之间的通信顺畅。Struts2框架使得开发者能够更高效地构建Web应用程序,降低了代码的耦合度,提高了可维护性。 Struts2的工作流程可以概括如下: 1. 客户端向Web服务器(如Tomcat)发送请求。 2. 请求经过Struts2的过滤器(Filter)链,到达FilterDispatcher。 3. FilterDispatcher查找ActionMapper,以确定请求的Action映射。 4. 根据映射信息,ActionProxy通过Configuration Manager读取"struts.xml"配置文件,找到对应的Action类。 5. ActionProxy实例化请求的Action对象。 6. 如果在配置中有相关拦截器,那么在Action执行前后,这些拦截器会被调用,执行预处理和后处理操作。 7. Action处理完请求后返回逻辑视图名,Struts2根据逻辑视图名找到对应的物理视图(如JSP、Velocity或FreeMarker模板),并将结果返回给客户端。 在创建Action类时,有几点需要注意: 1. Action类可以是普通Java类,也可以实现Action接口或者继承ActionSupport类。ActionSupport类提供了默认行为,如错误和验证支持。 2. 必须有一个无参的execute()方法,这是Struts2框架调用来处理用户请求的核心方法。 3. Action类通常会有私有属性,它们对应HTTP请求参数,属性的set、get方法用于处理和设置这些参数,确保与请求参数名称匹配。 至于结果类型配置,Struts2允许Action返回不同的结果类型来决定后续的处理流程。例如: - `SUCCESS`:默认的结果类型,通常表示Action执行成功,会跳转到与之关联的“success”结果配置的视图。 - `ERROR`:如果在Action执行过程中发生错误,可能返回此结果类型,对应的视图通常显示错误信息。 - `INPUT`:当表单验证失败时,可能会返回`INPUT`,让用户重新输入。 - 自定义结果类型:开发者可以根据需求定义自己的结果类型,例如跳转到特定页面或执行其他业务逻辑。 在"struts.xml"配置文件中,需要为每个Action配置可能的结果类型,并指定相应视图的路径。这样,Action在执行后根据返回的结果类型,Struts2框架会自动选择并跳转到相应视图。