Struts1与Struts2比较
-
Struts1要求Actio类继承一个抽象类。Struts2 Action类可以实现一个Action接口,或者不实现Action类而有一个包含execute方法的pojo类。
-
Struts1 Action是单例模式并且是线程不安全。Struts2 Action对象为每一个请求产生一个实例,不存在线程安全问题。
-
Struts1 Action依赖Servlet API,而Struts2 Action可以仅仅是pojo类,不对Servlet API产生依赖.
-
Struts1 Action依赖于Servlet API,需要测试则要虚拟WEB环境第三方扩展,Struts2 Action可以通过初始化,设置属性,调用方法来测试.
-
Struts1 整合JSTL对象图遍历基本满足,但对集合和索引属性则支持不够。Struts2 既可以使用JSTL,也可以强大的表达式语言OGNL.
-
Struts1 使用标准jsp机制把对象绑定到视图页面。Struts2 使用“ValueStack“技术。让标签库能够访问值,不需要把对象和视图页面绑定。
-
Struts1 在ActionForm重写Validate方法中效验,或者使用Commons alidator框架来完成数据效验,而Struts2 支持重写validate方法进行效验,也支持XWork效验.
- Struts1 支持每一个模块对应一个请求处理,Struts2 通过拦截器堆栈为每一个Action创建不同的生命周期。
WebWork 2与Struts2 对比
- Struts2可以算是WebWork2的升级版,仅仅把WebWork改了一个名。
- 使用WebWork等同Struts2,最大的区别,莫过与就是Struts2去掉WebWork内建的IOC容器,而全面支持Spring 的IOC容器.