Struts2入门教程:从零开始学习Struts2框架
需积分: 9 48 浏览量
更新于2024-07-28
收藏 577KB PDF 举报
"strust2教程"
Struts2是一个流行的开源MVC框架,它在Java Web开发中被广泛使用。作为Struts1.x的升级版,Struts2在设计和实现上进行了重大改进,尽管它仍然遵循MVC模式,但在很多方面都与Struts1.x有显著的不同。本教程将详细介绍如何使用Struts2进行开发。
首先,Struts2的开发环境包括MyEclipse6作为集成开发环境,Tomcat6作为Web服务器,Struts2的核心库版本为2.0.11.1,JDK版本为1.5.0_12,以及JavaEE5.0作为开发标准。在实际项目中,开发者需要下载Struts2的安装包,包含核心库struts2-core、xwork、commons-logging、freemarker和ognl等依赖组件。
Struts2框架基于Webwork技术,因此其内部大量使用了来自xwork的类和包。与Struts1.x相比,Struts2的配置和使用方式更为灵活,不再局限于特定的类继承结构。例如,Action类不再强制从Action类继承,而是通过实现特定接口或使用注解来定义处理逻辑。同样,ActionForm的概念在Struts2中也被更灵活的模型对象所取代。
建立一个基本的Struts2应用通常涉及以下步骤:
1. **配置Struts2** - 不像Struts1.x需要配置ActionServlet,Struts2通过在web.xml中配置过滤器(`struts2-convention-plugin`或`struts2-core`)来启动框架。这使得配置更加简洁,同时也支持基于约定的命名规则。
2. **创建Action类** - Struts2的Action类不再需要继承特定的基类,而是可以选择实现`com.opensymphony.xwork2.ActionSupport`接口,或者使用注解来声明Action方法。
3. **定义结果视图** - 结果视图不再通过`<forward>`标签定义,而是通过Action类中的返回值与配置文件(或注解)中的结果映射相结合来决定。
4. **使用Interceptors(拦截器)** - Struts2引入了拦截器机制,允许在Action调用前后执行通用逻辑,如日志记录、权限检查等,增强了框架的可扩展性。
5. **配置Action和URL映射** - 传统的Struts1.x需要在struts-config.xml中配置每个Action,而在Struts2中,可以通过XML配置(struts.xml或struts.properties)或基于类名和方法名的约定来自动映射URL。
6. **视图层处理** - Struts2支持多种视图技术,如JSP、FreeMarker、Velocity等。默认情况下,视图通常是JSP,可以通过`<result>`标签指定。
7. **使用OGNL表达式语言** - Struts2的视图层和控制器之间通过OGNL(Object-Graph Navigation Language)交换数据,简化了数据绑定。
在学习Struts2的过程中,开发者会发现其强大的国际化、异常处理、主题和皮肤等功能,以及对Ajax和RESTful风格的支持,这些特性使得Struts2成为构建复杂Web应用的理想选择。然而,随着Spring Boot和其它现代框架的兴起,Struts2的使用逐渐减少,但它的设计理念和模式对理解现代Web框架仍有很大帮助。
2012-03-30 上传
2011-11-30 上传
2013-01-23 上传
2014-07-03 上传
2008-09-23 上传
2008-11-10 上传
2024-10-31 上传
2024-10-31 上传
li516568304
- 粉丝: 0
- 资源: 2
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库