Struts 2.0的Action讲解
Struts 2.0 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web框架,它极大地简化了开发过程。在Struts 2中,Action是处理用户请求的核心组件,负责业务逻辑的执行。与Struts 1.x相比,Struts 2.0的Action模型更加灵活,不再强制要求Action类必须继承特定的基类或实现特定接口。 在Struts 2.0中,Action类可以完全自定义,但为了方便开发,通常我们会选择继承`com.opensymphony.xwork2.ActionSupport`类。`ActionSupport`提供了许多内置的功能,比如国际化支持、错误和异常处理、验证机制以及与Spring的集成等。它实现了多个接口,包括`com.opensymphony.xwork2.Action`、`com.opensymphony.xwork2.LocaleProvider`、`com.opensymphony.xwork2.TextProvider`、`com.opensymphony.xwork2.Validateable`、`com.opensymphony.xwork2.ValidationAware`、`com.uwyn.rife.continuations.ContinuableObject`、`java.io.Serializable`和`java.lang.Cloneable`。 在`ActionSupport`类中,最重要的方法是`execute()`,它是处理请求的主要入口点。在例子中,`execute()`方法被覆盖,用于设置消息并返回一个表示操作结果的常量,例如`SUCCESS`。这个结果常量会被Struts 2用来决定接下来的流程,如转向哪个结果页面。 配置方面,Struts 2使用XML配置文件(如`struts.xml`)来定义Action的映射。在例子中,`<action>`元素指定了Action的名称("HelloWorld"),类名("tutorial.HelloWorld")以及成功后跳转的页面("/HelloWorld.jsp"`)。当用户访问`http://localhost:8080/Struts2_Action/HelloWorld.action`时,Struts 2会根据配置文件创建`HelloWorld`类的实例,并调用`execute()`方法。 Struts 2还提供了多种方式来改变Action的执行逻辑,比如通过配置Action的`result`元素,或者使用拦截器(Interceptor)来改变Action的执行流程。拦截器可以用于实现通用的功能,如登录检查、权限验证等,这样就不需要在每个Action中重复编写这些代码。 此外,`ActionSupport`类还提供了错误和异常处理的机制。如果在`execute()`方法中抛出异常,Struts 2会自动捕获并根据配置显示错误信息。对于验证,`ActionSupport`实现了`Validateable`接口,允许我们在Action类中定义字段级的验证规则,当`execute()`方法被调用前,Struts 2会自动进行验证。 Struts 2.0的Action模型通过`ActionSupport`类提供了一套完整的解决方案,包括业务逻辑处理、错误处理、验证和国际化等功能。开发者可以根据需求选择继承`ActionSupport`或自定义Action类,以实现更灵活的控制和扩展。































剩余18页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 常用功能代码库项目_代码片段集合工具函数开发辅助模块编程示例跨语言支持文档注释测试用例性能优化技巧错误处理方案API封装配置模板自动化脚本数据处理工具网络.zip
- 基于PHP_Swoole框架构建的高性能键值对数据存储服务器_支持内存缓存与持久化存储_提供低延迟高并发的数据读写服务_适用于实时数据处理与缓存加速场景_包含数据压缩与加密功能_支.zip
- zlib-devel-1.2.7-18.el7.x86_64.rpm.zip
- zlib-devel-1.2.7-18.el7.x86_64.rpm.zip
- iOS开发基础工具库_包含文件操作网络访问提示UI设备唯一IDkeychain存储时间戳处理字符串校验Base64编码MD5计算JSON字典转换屏幕适配导航栏高度获取_帮助开发者快.zip
- BodyPaint_3D 3.1.1 笔刷文件包:解决无笔刷问题
- 博恒广告行业专业记账软件v8功能全面上线
- 抖音视频下载助手可批量下载抖音内容
- 抖音视频下载助手可批量下载抖音内容
- SP490E/SP491E:增强型全双工RS-485收发器
- 基坑监测方案标准版
- 高级系统架构师培训讲义
- 基坑监测方案标准版
- 阿里云表格存储中间件自动参数拆装工具_支持主键注解属性列标注子类标注范围查询迭代器查询数据写入条件查询配置客户端快速集成_简化Java应用对阿里云表格存储服务的读写操作减少手动参数.zip
- 基于FMDB的iOS轻量级数据库操作演示项目_数据库操作SQLite封装增删改查事务处理数据模型映射线程安全性能优化错误处理数据持久化CoreData替代方案_帮.zip
- UnionDB低成本高性能地图数据存储引擎_百万级小数据文件查询检索更新增强读写协议高可用存储调度_替代传统PG集中式存储的海量数据处理解决方案_驱动连接池文件锁读写接口API底层存储设计.zip


