Struts2概述及与Struts1的对比
2015-12-19 09:58
459 查看
Struts2 概述
1,仍然是一个基于请求响应的MVC框架2,Struts2不是Struts1的升级3,Struts2与Struts1的体系结构差距非常大4,Struts2采用了另一个MVC框架WebWork的核心设计5,Struts2更优秀:松耦合设计。。Struts1与Struts2的对比
1,Action方面
Struts1的Action必须继承;Struts1是单例的,存在线程安全问题;控制执行方面,Struts1固定不变的Struts2的Action可以不继承;Struts2是多例的,没有线程安全问题;控制执行方面,Struts2通过拦截器,可以改变执行流程,灵活配置的2,Servlet API依赖与可测试性
Struts1的Action测试性不好,Struts1中的Action需要依赖Servlet API,因为需要容器支持,因为在Action依赖Servlet APIStruts2的Action测试性不好,Struts2中的Actionk可以不用依赖ServletAPI,可以直接写一个单元测试完成,因为Struts2的Aciton是一个POJO对象3,ActionForm方面
Struts1收集数据通常使用ActionForm,而ActionForm还需要继承,使得ActionForm的复用率降低。另外项目非常大会建立很多ActionForm给维护带来工作量,但也有好处,数据的收集和控制进行很好的分离。Struts2可以不用使用ActionForm来收集数据,直接让Action来收集 数据,但也可以采用类似ActionForm的方式来收集数据,Struts2采用ModelDriven的方式来支持类似Struts1的ActionForm方式,所以Struts2更灵活。4,类型转换与表达式语言方面
Struts1对ActionForm的类型转换采用 commons-beanutils工具,而定义完成一个转换器,将对所有的ActionForm起作用,而不能针对某一个ActionForm来配置是否使用此类型的转换器。Struts1中我们通常使用JSTL作为显示层绑定数据的方式。Struts2使用OGNL进行类型转换,功能更加强大,转换过程可以针对某个类型进行配置。;Struts2中我们可以使用功能更强大的表达式语言OGNL(Object Graph Notation Language)5,校验
Struts1采用覆盖ActionForm中的validate()方法或采用验证框架commons validator来验证Struts2支持使用覆盖validate()方法来完成验证,也支持验证框架XWork来验证。相关文章推荐
- Struts2概述及与Struts1的对比
- 深入理解Java:注解(Annotation)自定义注解入门
- Java输出xml文件——DOM法写入《Dota…
- Java读取xml文件——DOM解析《Dota2…
- 【Java EE 学习 75 下】【数据采集系统第七天】【二进制运算实现权限管理】【使用反射初始化权限表】【权限捕获拦截器动态添加权限】
- 菜鸟猿大战Java之集合框架系列(二)
- spring mvc拦截器
- java中字节数组与字符串,与数据之间的装换
- Eclipse中10个最有用的快捷键
- 详解Java的Hibernat框架中的Map映射与SortedMap映射
- Java内存简介
- removeAll throws java.lang.UnsupportedOperationException
- Mybatis3源码分析(07)-加载Configuration-总结
- java中的进制问题以及位运算
- Spring MVC+FreeMarker简介
- java求最大公约数(分解质因数)
- java 多线程 传参 并发处理
- java 多线程 两种实现方式
- AES加密时的 java.security.InvalidKeyException: Illegal key size 异常
- SpringMVC在Servlet3.0下上传文件的示例