struts2 使用之我见
Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以说是大红大紫,从开发人员的角度来分析,Struts2之所以能够如此的深入开发人员之心,与其优良的设计是分不开的。
下面我从使用Struts2一年之久的经验来分析一下Struts2的优点:
1. Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程。
我在项目开发过程中,一个具体的功能的开发流程是:
- 拿到一个具体的功能需求文档和设计好的前台界面(在开发中我不负责设计页面),
- 分析需要从前台传递哪些参数,确定参数的变量名称,在Action中设置相应的变量,
- 这些参数在前台如何显示,并将页面上的一些控件适当使用Struts2提供的服务器端控件来代替,
- 编写Action对应的方法来完成业务逻辑,
- 最后,做一些与配置文件相关的设置。
当然实际的开发比这个过程要复杂,涉及到数据库,验证,异常等处理。但是使用Struts2进行开发,你的关注点绝大部分是在如何实现业务逻辑上,开发过程十分清晰明了。
2. 使用OGNL进行参数传递。
OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。大大简化了开发人员在获取这些数据时的代码量。
3. 强大的拦截器
Struts2的拦截器是一个Action级别的AOP,Struts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器是可配置与重用的,可以将一些通用的功能如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中比较通用的功能。在我实现的的一Web项目中,就是使用Struts2的拦截器来完成了系统中的权限验证功能。
4. 易于测试
Struts2的Action都是简单的POJO,这样可以方便的对Struts2的Action编写测试用例,大大方便了Java Web项目的测试。
5. 易于扩展的插件机制
在Struts2添加扩展是一件愉快而轻松的事情,只需要将所需要的Jar包放到WEB-INF/lib文件夹中,在struts.xml中作一些简单的设置就可以实现扩展。常用的Struts2的扩展可以通过这个链接找到:
6. 模块化
Struts2已经把模块化作为了体系架构中的基本思想,可以通过三种方法来将应用程序模块化:
- 将配置信息拆分成多个文件
- 把自包含的应用模块创建为插件
- 创建新的框架特性,即将与特定应用无关的新功能组织成插件,以添加到多个应用中去。
7. 全局结果与声明式异常
为应用程序添加全局的Result,和在配置文件中对异常进行处理,这样当处理过程中出现指定异常时,可以跳转到特定页面,这一功能十分实用。
Struts2的优点有很多,欢迎交流讨论。
分享到:
相关推荐
struts2 使用之我见 Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以...
struts2-convention-plugin-2.3.32.jar struts2-core-2.3.32.jar struts2-spring-plugin-2.3.32.jar xwork-core-2.3.32.jar 2、删除上面原有的低版本jar 3、修改 WEB-INF\classes 目录下struts.xml 文件,...
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过...
【Struts2】〖所有依赖jar包〗struts-2.3.37-lib 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
本文将详细探讨配置Struts2时常见的错误及其解决方案。 #### 1. Console 错误:Exception starting filter struts2 **问题描述**: ``` Nomapping found for dependency[type=...
使用Struts2标签时,开发者需要注意以下几点: - 标签需要放在`<s:head>`或`<%@ taglib prefix="s" uri="/struts-tags"%>`引入标签库之后。 - 每个标签都有对应的属性,例如`s:property`的`value`属性就是指定要显示...
使用的jar包见附件strutsSimple.rar web.xml里面需要配置的项目 <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-mapping> ...
8、struts2基本标签的使用 9、struts2的Action实现,其中用到了两种方法 (1)UserAction类是比较方便的方法,本系统就只用到了UserAction类 (2)AddUserAction、DeleteUserAction、ViewUserAction是另外一种实现,...
【Struts2】〖基本依赖jar包〗struts-2.3.37-min-lib 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
提供的源码可能包含了一些基础的Struts2应用实例,例如用户登录、注册、CRUD操作等,这些都是学习Struts2时常见的应用场景。 通过深入学习这份资料,你不仅可以理解Struts2的基本概念和机制,还能通过源码实践加深...
该资源非常适合刚接触struts2的小伙伴,里面有源码个匹配的Struts2的jar包,使用方法见readme.txt。 另外提交数据后,如遇到乱码,请参考: http://blog.csdn.net/xp871038951/article/details/78322799
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过...
struts2part2,由于文件太大无法一次上传,分成两部分,请用文件合并工具进行合并。文件合并工具见本人资源。
目的:构建struts2开发框架 使用 Hibernate作为持久层操作 适合:有一定struts2基础 实现:通过对用户信息的基本操作来给大家做个示范 1、struts2的搭建 2、web.xml文件的简单配置 3、struts.xml文件的简单配置 4...
- Struts1的设计模式较为陈旧,现在更多人倾向于使用更新的Struts2或Spring MVC。 五、实际开发应用 在实际开发中,Struts可以与其他技术结合,如Hibernate用于持久化,Spring进行依赖注入和事务管理,构建完整的...
目的:构建struts2开发框架 使用 Hibernate作为持久层操作 采用Spring容器 适合:有一定struts2基础 对Hibernate有一定的了解 对Spring有一定的知识 实现:通过对用户信息的基本操作来给大家做个示范 1、struts2的...
SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...
- Struts2在配置和使用上与Struts1.x有较大区别。 - Struts2基于WebWork框架构建,继承了WebWork的优点并加以改进。 - 在技术架构上,Struts2更加灵活且易于扩展。 #### 二、Struts2基本程序构建流程 **知识点5...
2 JDK5.0及以上版本. 3 ECLIPSE3.2 及以上版本. 4 MySQL5.0 注意事项: 1 TOMCAT安装路径中请不要包含中文字符,否则程序将不能正常运行. 目录及文件: debug\document PDM及数据库脚本。 作者留言: 本程序是作者...
添加struts2-sunspoter-stream-1.1.jar,该版本适用的范围: 1.JDK 1.4.2 2.J2EE 1.4 功能见http://sunspot.blog.51cto.com/372554/474983