`
zhouxing
  • 浏览: 198958 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Struts 2 GA

阅读更多
Apache Struts 2 GA 版本发布了.

这是Apache Struts 2 首次发行稳定的版本, GA意味着 General Availability , 也就是官方开始推荐广泛使用了.

Struts2 GA版本的发布, 意味着核心开发力量将全部转移到Struts2, 对Struts1的支持将会淡化.

下面列出了一些Struts1和Struts2的区别和对比:

Action 类:
• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
• Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。

线程模式:
• Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
• Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

Servlet 依赖:
• Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。
• Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。

可测性:
• 测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。
• Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。

捕获输入:
• Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存在的JavaBean(仍然会导致有冗余的javabean)。
• Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven 特性简化了taglib对POJO输入对象的引用。

表达式语言:
• Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。
• Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--"Object Graph Notation Language" (OGNL).

绑定值到页面(view):
• Struts 1使用标准JSP机制把对象绑定到页面中来访问。
• Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
 
类型转换:
• Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
• Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。

校验:
• Struts 1支持在ActionForm的validate方法中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。
• Struts2支持通过validate方法和XWork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性

Action执行的控制:
• Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
• Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。
分享到:
评论

相关推荐

    struts2.3.12GA(HTML版)

    Last Published: 2013-03-16 Struts 1 | Struts 2 | Apache APACHE STRUTS Welcome Releases Announcements License Kickstart FAQ Website Stats Thanks! Sponsorship DOCUMENTATION Key Technologies Struts ...

    struts-2.3.30-all所有jar包

    struts2-struts1-plugin-2.3.30.jar, struts2-testng-plugin-2.3.30.jar, struts2-tiles-plugin-2.3.30.jar, struts2-tiles3-plugin-2.3.30.jar, tiles-api-2.2.2.jar, tiles-compat-3.0.1.jar, tiles-core-2.2.2....

    struts-2.5.2-all所有jar包

    struts2-bean-validation-plugin-2.5.2.jar, struts2-cdi-plugin-2.5.2.jar, struts2-config-browser-plugin-2.5.2.jar, struts2-convention-plugin-2.5.2.jar, struts2-core-2.5.2.jar, struts2-dwr-plugin-2.5.2....

    struts2.3.20版本的jar包

    这个是struts2.3.20版本的所需要的九个包 commons-fileupload-1.3.1.jar commons-io-2.2.jar commons-lang3-3.2.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar ognl-3.0.6.jar struts2-core-2.3.20.jar struts...

    struts-2.5.10-all所有jar包

    2.5.10.jar,struts2-cdi-plugin-2.5.10.jar,struts2-config-browser-plugin-2.5.10.jar,struts2-convention-plugin-2.5.10.jar,struts2-core-2.5.10.jar,struts2-dwr-plugin-2.5.10.jar,struts2-embeddedjsp-plugin-...

    在Struts 2中实现文件上传

    Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload...前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts作为框架的。

    Struts所需的jar包(完整版)

    整合SSH项目时用到的jar包,其中包含有8个jar包,commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、commons-logging-1.0.4.jar、freemarker-2.3.15.jar、javassist-3.9.0.GA.jar、ognl-2.7.3.jar、struts2-core...

    最新Struts2+jq+ajax+json 学会总要4步‵‵超级简单,里面包含实例

    1. 导入struts2 及json包 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar ognl-...

    javassist-3.11.0.GA.jar

    stuts2项目启动tomcat报错:Error configuring application listener of class org.apache.struts2.dispatcher.ng.listener.StrutsListener,缺少的是这个javassist-3.11.0.GA.jar

    Spring4+Hibernate5+struts2需要jar包集合【附详细讲解】

    本资源包包含一下文件+详细教程 antlr-2.7.7.jar asm-5.2.jar asm-commons-5.2.jar asm-tree-5.2.jar byte-buddy-1.9.10.jar c3p0-0.9.5.2.jar ...struts2-spring-plugin-2.5.20.jar txw2-2.3.1.jar

    spring-framework-3.0.5.RELEASE-dependencies-6

    org.apache.struts org.apache.taglibs 5号包: org.codehaus.castor org.aspectj org.beanshell 6号包: org.jdom org.jgroups org.codehaus.groovy org.codehaus.jackson org.dom4j org.freemarker org.hibernate ...

    MyEclipse_9创建SSH2开发环境必须的独立包

    struts2 相关包-------------------------------------------------- xwork-2.0.5.jar webwork的核心库 ognl-2.6.11.jar OGNL表达式语言,struts2支持该EL freemarker-2.3.8.jar 表现层框架,定义了struts2的可视...

    271个java需要用的jar包

    struts2-struts1-plugin-2.3.15.3.jar struts2-testng-plugin-2.3.15.3.jar struts2-tiles-plugin-2.3.15.3.jar struts2-tiles3-plugin-2.3.15.3.jar tagsoup-1.2.1.jar tiles-api-2.0.6.jar tiles-autotag-core-...

    web开发中常用的jar包

    activation.jar antlr-2.7.6.jar asm-3.3.jar asm-commons-3.3(1).jar asm-tree-3.3.jar c3p0-0.9.1.jar ...com.springsource.org.apache.log4j-1.2.15.jar...struts2-spring-plugin-2.3.15.3.jar xwork-core-2.3.15.3.jar

    java开发常用jar包

    该资源包含以下jar包: commons-codec-1.6.jar commons-logging-1.1.1.jar fluent-hc-4.2.5.jar httpclient-4.2.5.jar ... import org.apache.http.Header;... struts2-core-2.3.24.jar xwork-core-2.3.24.jar

    SSHjar包 .rar

    antlr-2.7.6.jar asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar ...com.springsource.org.apache.commons.logging-1.1.1.jar ...struts2-spring-plugin-2.3.15.1.jar xwork-core-2.3.15.1.jar。。。

    web开发常用jar

    struts2-spring-plugin-2.0.14.jar struts2整合spring所需要的包 xwork-2.0.7.jar xwork核心包 antlr-2.7.6.jar 一个语言转换工具, Hibernate利用它实现 HQL 到 SQL 的转换模板相关操作需要包 javassist...

    ssh框架基础jar

    antlr-2.7.7.jar asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar c3p0-0.9.2.1.jar ...com.springsource.org.apache.commons.logging-1.1.1.jar ...struts2-spring-plugin-2.3.24.jar xwork-core-2.3.24.jar

    JSF2.0快速入门的基本教程.ppt

    JSF将是J2EE5.0中所包含的web开发框架,这应该是第一个成为jcp标准,并且随j2eesdk一起发布的web框架,可以看出sun对它的期望很高。JSF最大的竞争对手是tapestry,是apache的产品,但是apache又弄出了个myfaces,是...

Global site tag (gtag.js) - Google Analytics