struts1.x 与 struts2 的对照

来源:互联网 发布:詹姆斯目前数据 编辑:程序博客网 时间:2024/06/06 03:05
struts1.x 与 struts2 的对比

1. action 类
   struts1.x 面向抽象类的编程
   struts2 面向接口的编程
2. 线程模式
   struts1.x 是单例模式,一个实例处理所有请求,所以action资源必须是线程安全.
   strut2 每次请求实例化一个对象,没有线程安全问题.
3. servlet 依赖
   struts1.x 依赖于servlet API,依赖于web容器
   struts2 与容器无关
4. 测试
   struts1.x 依赖于容器
   struts2 可以通过初始化action或依赖注入来测试
5. 捕获输入
   struts1.x 用actionForm来捕获输入,而且actionForm必须扩展至基类.也可以用
   动态bean但是那样也是对已存在javabean的重复描述
   struts2 直接使用action属性作为表单输入,免去对第二个bean的依赖,可以直接通过taglib访问action属性.
6. 表达式语言
   struts1.x 使用jstl作为表达式语言,具有基本的图形对象移动,但对集合索引属性支持弱.
   struts2 也使用jstl,但是也支持功能更强大的ognl语言.
7. 将值绑定到页面
   struts1.x 使用标准jsp机制将对象绑定到jsp页面上下文.
   struts2 使用值栈技术,用taglib直接访问值,而不需要将对象与页面绑定起来.
8. 类型转换
   struts1.x 的actionForm属性经常都是String类型.struts1.x使用commons-beanUtils工具转换每一个类.
   struts2 使用ognl进行转换.
9. 验证
   struts1.x 支持在actionForm的validator中进行手动验证,或通过commons validator校验.
   struts2 支持通过validator 和 xwork框架验证.支持子对象效验.
10. action 执行控制
   struts1.x 每一个请求模块有单独的请求周期,但是模块中的所有action必须共享相同的生命周期.
   struts2 通过拦截器堆栈为每一个action创建不同的生命周期,堆栈能够根据需要和不同的action一起使用.

详细页面:http://www.verydemo.com/demo_c140_i29487.html

0 0