`
moonsee
  • 浏览: 134346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts webwork区别

阅读更多
不想过多的争论struts与webwork的优越性,只是自己做了一个小试验。在做试验之前已经用struts做过两个项目了,webwork还是初级学习。    
  1.使用标签。struts的自定义标签多,学习起来复杂,但同时功能强大。webwork只定义了一个webwork.tld,操作更简单。    
  2.有效性验证和javascript支持。struts支持客户端JavaScript与服务器端的校验。webwork的客户端校验,欠美观。具说支持javascript但是因为初学,没有试过。    
  3.struts和webwork都支持velocity.struts的支持是使用velocity   tools,webwork则直接将velocity嵌入。比较起来webwork显示更加灵活,配置简单一些。    
  4.插件的支持。struts作为比较成熟的产品,拥有titles、validator插件,也可自己编写自己的插件,通过struts配置文件加载。webwork实现插件是通过定制component.xml实现。    
  5.显示方面。struts因为支持titles,布局更加灵活。webwork与velocity切换容易也可以定制不同的显示模板,但是定制过程繁琐一些。    
  6.hibernate的支持程度。struts通过过滤器和插件实现。webwork有专门的插件:org.hibernate.admin.component.HibernateSessionFactory和org.hibernate.admin.component.HibernateSession    
  7.模块化开发。struts支持模块化开发,支持switchAction.webwork暂时不知是否支持团队开发,支持action复用。通过定义方法。    
  8.显示定义formbean.struts需要显示定义   formbean或通过配置文件定义动态属性。webwork不需要定义formbean或相关属性,直接通过拦截器捕获属性。    
  9.资料获取。struts开源项目,支持者众多,Apache项目文档比较全。webwork相关文档和学习资料较少。    
   
  综上所述:个人认为webwork适合初学mvc模式的人,可以快速建立模型。struts为主流mvc实现,资料多,支持者多,前景看好一些。    
  个人观点仅供参考,进一步交流可以发邮件给我   hyluc88@yahoo.com。  
   
  这份帖子,我是不想再回,可是又不忍心让更多的朋友对WebWork存在误解。    
   
  引用:    
  1.使用标签。    
  用过WebWork标签库才知道什么叫功能强大,它可以在标签里直接调用Action方法(可以带参数的),    
  直接访问类的静态属性和静态方法,强大的Iterator标签库。绝对让你爽个够。(我用过Struts的标签库,JSTL,    
  都不能完全满足要求,直到我用了WebWork的标签库,后来才知道WebWork为什么一直保留自己的标签库。在这里也感谢王盛    
  将我的Groller-ww中的JSTL用WebWork标签库替换)。    
   
  引用:    
  2.有效性验证和javascript支持。    
  我首先申明WebWork是支持客户端javascript验证的,但在2.1版本中还不是很成熟,相信后面    
  的版本会有很好的改进。对效性验证更多看你是如何处理,我想最常用的就是自己写Javascript.如果在程序中做有效性验证,    
  WebWork的验证才是真正的灵活。    
  引用WebWork教程:    
  WebWork提供了在Action执行之前,对输入数据的验证功能,它使用了其核心XWork的验证框架。提供了如下功能:    
  1、   可配置的验证文件。它的验证文件是一个独立的XML配置文件,对验证的添加、修改只需更改配置文件,无需编译任何的Class。    
  2、   验证文件和被验证的对象完全解藕。验证对象是普通的JavaBean就可以了(可以是FormBean、域对象等),它们不需实现任何额外的方法或继承额外的类。    
  3、   多种不同的验证方式。因为它验证功能是可以继承的,所以可以用多种不同的方式指定验证文件,比如:通过父类的Action、通过Action、通过Action的方法、通过Action所使用的对象,等等。    
  4、   强大的表达式验证。它使用了OGNL的表达式语言,提供强大的表达式验证功能。    
  5、   同时支持服务器端和客户端验证。    
   
  引用:    
  3.struts和webwork都支持velocity。    
  我想这就不用解释了,WebWork最好。    
   
  引用:    
  4.插件的支持。    
  Struts相关的插件确实很多,可是真正你用的又是多少?感觉就象是在打补丁。WebWork的插件应归功于它的    
  拦截器(AOP编程),它的很多功能框架都是通过拦截器来组装的,例如:验证、国际化、Ioc等。与其它项目的集成,    
  例如同Spring的完美组合都离不开拦截器的功劳。    
   
  引用:    
  5.显示方面。    
  WebWork使用强大的OGNL做为它表达式语言,它展现和存取整个对象结构的能力实在是太强了。特别是你用Hibernate    
  Open   Session   in   View,这时你一定会爱死WebWork的。    
   
  引用:    
  6.hibernate的支持程度。    
  我想WebWork绝对是最好支持hibernate的J2EE   Web框架。当然,如果用Spring对hibernate包装会更好。    
   
  引用:    
  7.模块化开发。    
  我的帖子:    
  http://forum.iteye.com/viewtopic.php?t=6529    
  WebWork2真正彻底解决了这些问题.它是用package和namespace来实现真正的多模块.    
   
  package:它很类似我们Java程序的包(package),我们可以把每个模块定义成一个package,这一点与Struts的模块有些相似,但package的功能更强大,它可以继承在它上面的package,获得父package的global   results、interceptor、interceptor-stack、action等所有配置.我们可以把每个package写成一个独立的配置文件,例如:module1-xwork.xml(文件的名称没有任何限制),在xwork.xml中只要通过    
  <include   file="module1-xwork.xml"/>引用即可.    
  但要注意:WebWork的配置文件xwork.xml是安装文件内容顺序(从上到下)读取的,如果你的package继承了一个父package,那么这个父package必需在它之前定义.    
   
  namespace:它是package的命名空间,它用来分隔不同package定义的action,让这些action处于不同的命名空间(namespaces)。    
  这样,我们不同的package可以有相同的action命名,因为可以通过命名空间来区分。如果不指定namespace,默认的是空字符串。    
  命名空间也可以被用在安全控制方面,它可以根据不同的命名空间指定不同的访问权限。    
  ...................................    
   
  引用:    
  8.显示定义formbean。    
  Struts的FormBean是公认的败笔,WebWork会让你爽个够。    
   
  引用:    
  9.资料获取。    
  struts确实占优势。    
   
  引用:    
  综上所述:    
  WebWork简单、灵活、高效。Struts笨重、复杂、不够灵活。如果想更好的提供开发效率,WebWork是你最好的选择,    
  项目越大越负责越能体现WebWork的优势。  
   
分享到:
评论

相关推荐

    struts2与webwork2

    struts2与webwork2之间的联系与区别

    Struts2 WebWork的更新产品

    Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品

    Struts2-Webwork2-DWR

    WEB2.0相关技术,深入浅出Struts2,Webwork2开发指南,DWR中文文档

    struts2对webwork的改进

    struts2对webwork的改进struts2对webwork的改进

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    不用多说了,Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版),解压出来有200多M,因为权限不怎么够,我一共分了12卷,是一本不可多得的好书。第一卷附目录: 第1章 Struts 2概述,第2章 Struts 2下的Hello...

    struts2建立流程

    其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为...

    struts1,struts2,webwork,线程安全问题

    struts1,struts2,webwork,线程安全问题,easy518网 http://www.easy518.com/

    Struts 2 技术详解:基于WebWork核心的MVC开发与实践

    Struts 2 技术详解:基于WebWork核心的MVC开发与实践

    struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework

    struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework

    Struts2.1权威指南——基于WebWork核心的MVC开发.zip

    《Struts 2.1权威指南》特点为:1.经验丰富,针对性强 《Struts 2.1权威指南》凝聚了作者大量的实际开发经验和感悟。作者依照读者的学习规律,首先介绍基本概念和基本操作,然后对内容进行深入讲解。 2.讲解具体,...

    开发框架struts2.1.8.zip

    Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

    Struts 2.1权威指南:基于WebWork核心的MVC开发

    李刚的Struts 2.1权威指南:基于WebWork核心的MVC开发,写的很详细。一共有九个压缩文件。

    Struts2 WebWork 2.0 Tags API 中文文档 [CHM]

    Struts2 WebWork 2.0 Tags API 中文文档 [CHM] webwork提供了一套不依赖于显示层技术的标签库。这一章我们将概括性的描述每一个标签, 比如此标签支持的属性,标签的行为等等。 大多数的标签都可以用于所有的模板...

    Struts 2 began as WebWork.

    Struts 2 began as WebWork.

    Struts2与Struts1区别

    Apache Struts 2即是之前大家所熟知的WebWork 2。在经历了几年的各自发展后,WebWork和Struts社区决定合二为一,也即是Struts 2  Struts 2 英文学习网站:hthttp://struts.apache.org/2.1.6/index.html

    struts与webwork的jar包无冲突版 自定义标签无冲突

    有时候会出现unix环境下不支持s:select标签,实际上是struts的自定义jar包与webwork之间有冲突。此文件是合并后的,无冲突版

    struts2学习文档

    其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为...

    struts2+webwork+spring.rar

    struts2+webwork+spring.rarstruts2+webwork+spring.rar

    Struts 2中文帮助文档

    其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为...

    struts-2.3.24-lib

    其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为...

Global site tag (gtag.js) - Google Analytics