Struts2 控制组件详解:Action 类与返回值常量

需积分: 13 1 下载量 110 浏览量 更新于2024-08-18 收藏 645KB PPT 举报
"常量返回值含义-struts2控制组件" 在Struts2框架中,控制组件是实现MVC设计模式的关键部分,它们负责处理用户请求并协调应用的流程。本篇将详细介绍Struts2的控制组件及其核心概念。 2.1 Struts2的控制组件 Struts2的控制组件主要由两部分构成: 1. **核心控制器**:这是Struts2的核心,即`FilterDispatcher`(在较新的版本中称为`StrutsPrepareAndExecuteFilter`),它是一个Servlet过滤器,负责拦截HTTP请求,解析请求参数,并将请求转发给相应的Action进行处理。 2. **业务逻辑控制器**:Action是Struts2的业务逻辑组件,它实现了用户交互和业务逻辑的封装。Action类可以有多种创建方式,包括: - **POJO(Plain Old Java Object)**:最基础的形式,只需创建一个Java类,无需实现任何接口。 - **实现Action接口**:直接实现`com.opensymphony.xwork2.Action`接口,定义`execute()`方法。 - **扩展ActionSupport类**:推荐的方式,继承`com.opensymphony.xwork2.ActionSupport`,该类已经提供了异常处理、国际化等便利功能。 2.2 应用控制组件 在Struts2项目中,我们通常会创建一个名为`struts.xml`的配置文件,用于定义Action、包、拦截器等,它是Struts2的配置中心。此外,`web.xml`是Web应用的部署描述符,其中配置了Struts2的过滤器,使其能在Web应用启动时生效。 2.3 执行动作中的不同方法 Action类的`execute()`方法是默认的处理方法,当一个Action被调用时,如果未重写其他方法,`execute()`会被执行。这个方法返回一个字符串,这个字符串决定了后续的流程,如转向哪个结果页面。 2.4 Action访问Servlet API Action类可以直接或间接地访问Servlet API,例如通过`HttpServletRequest`和`HttpServletResponse`对象来获取请求信息或设置响应内容。这使得Action能够与Servlet容器进行交互,实现更复杂的功能。 **常量返回值含义**: - **ERROR**:当`execute()`方法抛出异常或者业务逻辑处理失败时,Action返回`ERROR`,通常表示动作执行失败,系统可能会显示错误页面。 - **SUCCESS**:如果`execute()`方法执行成功,且希望跳转到一个指定的JSP页面展示结果,Action应返回`SUCCESS`。 - **LOGIN**:当需要用户登录后才能继续操作时,Action返回`LOGIN`,框架会根据配置处理登录请求。 - **INPUT**:如果数据验证失败或输入不完整,Action返回`INPUT`,提示用户重新输入所有数据。 - **NONE**:返回`NONE`表示Action执行成功,但不希望有任何视图(页面)响应,可能用于处理内部逻辑或跳转到其他Action。 理解这些常量返回值的含义对于编写和调试Struts2应用至关重要,它们帮助我们控制流程并提供友好的用户体验。在实际开发中,开发者可以根据需求自定义更多的返回值,以适应各种业务场景。