锁定老帖子 主题:struts和webwork双体验
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-08-19
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。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-08-20
这份帖子,我是不想再回,可是又不忍心让更多的朋友对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的优势。 |
|
返回顶楼 | |
发表时间:2004-08-20
我最看重的是:Struts的接口到处都是Http....和Servlet...,你怎么测试它?如果不能测试它,你怎么敢在里面放更多的业务逻辑?WebWork的可测试性,不是Struts能比的。
|
|
返回顶楼 | |
发表时间:2004-08-20
Moxie 感谢你的对webwork的热爱
引用 WebWork使用强大的OGNL做为它表达式语言,它展现和存取整个对象结构的能力实在是太强了。特别是你用Hibernate Open Session in View,这时你一定会爱死WebWork的。 我很惭愧的,很小声的说: 我也毫无救药的爱上了webwork。爱上了spring,爱上了hibernate,爱上了velocity。 action的易测试,是必须具备的!webwork在这方面做的太好了,IoC的支持,是的测试从繁到简!!!!哦,我不得不喜欢它!!!!!!!!! |
|
返回顶楼 | |
发表时间:2004-08-20
IDE不会是生产率的关键因素,在J2EE这里尤如是。Struts的设计思路就已经土到那里了,外面包得再漂亮,最多是个还算舒服的绣花枕头。
|
|
返回顶楼 | |
发表时间:2004-08-20
我最看重的还是它的简单、灵活 ,它让Web开发变得简单、优雅。
|
|
返回顶楼 | |
发表时间:2004-09-15
和风 写道 综上所述:个人认为webwork适合初学mvc模式的人,可以快速建立模型。struts为主流mvc实现,资料多,支持者多,前景看好一些。 个人观点仅供参考,进一步交流可以发邮件给我 hyluc88@yahoo.com。 strtus,两年前经过一个项目,很是不好。当时写tag,写js,累。页面难以重 用。面向过程嫌疑巨大。 webWork2了解中,不过也是基于Action这种机制,始终难逃面向过程嫌疑(方法类解决问题) 钟爱的依然是Tapestry,但Tapestry太多状态了,做点击率高的网站又吃不消。郁闷...... 但无论如何,在相同质量的前提下,如果我作为项目组织者,无疑我会选择生产率最高的。无论是ASP,JSP,PHP,.net.......或者什么框架。 技术固然是一个原因,但也有资源,熟练度等等原因。 |
|
返回顶楼 | |
发表时间:2004-09-15
gigix 写道 IDE不会是生产率的关键因素,在J2EE这里尤如是。Struts的设计思路就已经土到那里了,外面包得再漂亮,最多是个还算舒服的绣花枕头。
IDE是生产率的关键因素之一,这是我深切的教训。 以前,我是做delphi出身的,所以对于delphi的可视化设计比较熟悉,也比较喜欢。但在最近的项目中,我们采用了Swing。但swing的复杂的layout机制让一些新手晕斗转向,一旦比较复杂的界面,就需要花费大量的时间构建,修改......。界面开发效率奇低(我错估了........) 后来,我找到了一个叫foam的玩艺,嘿,将swing开发做得和delphi界面开发一样容易。 那个效率简直无法相比。 呵呵,这是一点实践。 |
|
返回顶楼 | |
发表时间:2004-09-15
weihello 写道 后来,我找到了一个叫foam的玩艺,嘿,将swing开发做得和delphi界面开发一样容易。 那个效率简直无法相比。 foam与JBuilder比较如何?? foam是一个做Swing的插件吗?是否可以和eclipse集成开发? |
|
返回顶楼 | |
发表时间:2004-09-15
moxie 写道 weihello 写道 后来,我找到了一个叫foam的玩艺,嘿,将swing开发做得和delphi界面开发一样容易。 那个效率简直无法相比。 foam与JBuilder比较如何?? foam是一个做Swing的插件吗?是否可以和eclipse集成开发? foam不是swing的插件,目前也没有提供与eclipse插件。是个单独的工程,工程非常简单。 foam和JB不具可比性,因为foam专注Pane,适合复杂的界面。 好处就在于其能够轻而易举的实现formLayout等等所要实现的功能,而且是可视化的! 可惜是收费的,我目前用的是crack后的1.2版本。 |
|
返回顶楼 | |