struts2与struts1.2的对比
来源:互联网 发布:喀秋莎录屏软件官网 编辑:程序博客网 时间:2024/06/14 02:11
特性
Struts 1
Struts 2
ACTION类
Sturs1 要求action类要扩展自一个抽象基类。Struts1的一个共有的问题是面向抽象编程而不是面向接口编程
Struts2 的action类实现了一个action接口,连同其他接口一起来实现可选择和自定义的服务,struts2提供一个名叫actionSupport的基类来实现一般使用的接口,虽然,Action接口不是必须的,任何使用execute方法的POJO对象可以被当做struts2的action对象来使用
线程模型
Struts 1 action 类是单例类,因为只有一实例来控制所有的请求,单例类策略照成了一定的限制并且给开发带来了额外的烦恼。Action资源必须是线程安全或者同步的
Struts2 action 对象为每一个请求实例化对象,所以没有线程安全的问题,(实践中servlet容器产生许多丢弃的对象对于每一个请求,多于一个的对象并不影响垃圾收集)
Servlet 依赖
Struts1 的action类依赖于servlet API以HTTPServletRequest和HttpServletResponse 作为参数传递给execute方法当Action被调用时。
Strtuts2 的action不和容器有关。Servlet上下文被表现为简单的MAps,允许Action被独立测试。Struts2 的action 可以访问最初的请求和响应,如果需要的话。然而,其他的架构元素减少或者排除直接访问HttpServletRequest或者HttpServletResponse的需要。
易测性
测试struts1的主要障碍是execute方法暴露了servlet API.第三方的扩展,struts测试用例,提供struts1的集合对象。
Struts2的action可以通过action来测试,设置属性,然后调用方法。依赖注入的支持也使测试变得简单。
接受输入
Struts1使用ActionForm对象来捕获输入,像Action一样,所有的ActionForm必须扩展基类,因为其他的javaBean不能作为ActionForm使用,开发者经常创建多余的类来捕获输入。DynaBeans可以被用来作为替代ActionForm的类
Struts 2Action属性作为输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过标签库来访问。Struts2也支持ActionForm形式。丰富的对象类型,包含业务或者对象,可以被当做输入或者输出对象来使用。模型驱动特性简化标签对POJO输入对象的引用。
表达式语言
Struts1 整合JSTL,所以它使用JSTL的表达式语言。表达式语言有基本的图形对象移动,但是相对很弱的集合被索引的属性支持。
Struts 2使用JSTL,但是框架也支持更强大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)
将值绑定到视图上
Struts1 使用标准JSP机制来绑定对象页面上下文
Struts2使用“ValueStack”技术为了标签可以不用连接你的视图到对象的表现形式来访问值。ValueStack策略允许重用视图
类型转换
Struts 1的ActionForm属性经常都是String的。Struts1使用Commons-Beanutils来类型转换。转换每一个类型,并不是为每一个实例配置。
Struts2使用OGNL类型转换。框架包含转换器为基本的和共同的对象类型和原始类型。
验证
Struts1支持手动验证,凭借ActionForm的validate方法,或者通过扩展的公用验证器。类可以有不同的验证上下文来为相同的类,但是不能不包括验证子对象。
Struts2支持手动验证凭借validate方法和XWork验证框架。Xwork验证框架支持一连串的验证子属性使用的验证,为了属性类的类型和验证上下文而定义。
Action执行的控制
Struts1 支持独立的请求处理对于每一个模型,但是所有在模型中的Action必需共享一个生命周期。
Struts2支持在每一个Action基础上凭借拦截机创建不同的生命周期。自定义机可以被创建并且使用不同的所需的action
- struts2与struts1.2的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Struts2与Struts1的对比
- Jemter 远程连接多台pc测试
- Ubuntu下修改多系统默认开机启动顺序
- sharepoint 获取userprofileManager中用户详细信息
- Ubuntu 更改主机名显示路径的更改
- 网络营销的十五大形式(上)
- struts2与struts1.2的对比
- 解决MySQL远程访问不允许得个好用方案
- PostgreSQL数据库集群:pgpool-II工具
- java省市级联
- Oracle 10g 环境下安装 Pentaho
- Struts 官方网站有没有打包下载api的地方呀?
- Installing OpenGrok On Ubuntu Linux 【转】
- Jpg, Jpeg, Exif
- Elastix视频通话配置