不想过多的争论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的优势。
分享到:
相关推荐
"struts与webwork的jar合并,无冲突版"是一个已经解决了这个问题的定制版本,它将Struts和WebWork的jar包进行了适当的合并和调整,使得在同一个项目中可以安全地使用`s:select`这样的自定义标签,而不会引发解析错误...
在探讨Struts2与WebWork2的联系与区别的过程中,我们不得不提到它们的历史渊源以及在Java Web开发领域中的地位。Struts2框架实际上可以视为WebWork2框架的继承者,两者之间的关系紧密而复杂,下面将从多个角度深入...
### WebWork与Struts处理上的异同分析 #### 一、引言 随着Web应用的发展,Java企业级应用框架在不断进化与完善之中。其中,Struts与WebWork是两个非常重要的MVC(Model-View-Controller)架构框架,它们在Java Web...
3. 验证与业务逻辑的耦合度:STRUTS的验证通常与业务逻辑分离,WebWork允许将验证集成到Action类中,耦合度相对较低。 4. 标准支持:WebWork支持JSR-303/JSR-349,使得开发者可以利用Java标准的验证库,如Hibernate...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品
深入浅出Struts2 的开发指南通常会涵盖以下主题:MVC 模式,Action 和 Result,配置管理,拦截器,国际化,异常处理,以及与第三方库如 Spring 的集成。Webwork2 Guide 则会讲解 Webwork2 的核心概念,如动作映射、...
Struts2 WebWork 2.0 Tags API 中文文档 [CHM] webwork提供了一套不依赖于显示层技术的标签库。这一章我们将概括性的描述每一个标签, 比如此标签支持的属性,标签的行为等等。 大多数的标签都可以用于所有的模板...
#### 三、WebWork与线程安全问题 WebWork框架与Struts1相似,也存在线程安全问题,但它提供了更多的配置选项来解决这些问题。 - **WebWork中Action实例管理机制:** - WebWork框架默认也会复用`Action`实例,但...
**Struts 2与WebWork的结合**: Struts 2 的核心技术基础是WebWork,它在Struts 1的基础上进行了许多改进,如更强大的表达式语言(OGNL)、拦截器机制、更简单的配置等。WebWork的这些特性被集成到Struts 2中,使得...
与WebWork相比,Struts2的拦截器链更加强大,可以更方便地组合和自定义拦截器,实现复杂的业务逻辑。 5. **表达式语言(EL)和OGNL**: Struts2采用OGNL(Object-Graph Navigation Language)作为默认的表达式语言...
当Struts2框架诞生后,完全取代了原有的Struts和WebWork框架,Struts2的开发团队将由Struts和WebWork两个团队组成,这保证了Struts2的开发团队更加强大.而且WebWork不再推出新版本,因此,实际项目开发中原来使用Struts和...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
此外,Spring MVC是Spring框架的一部分,用于构建Web应用,它与Struts2一样基于MVC模式,但提供了更多灵活性和可扩展性。 将Struts2、WebWork和Spring结合在一起,可以创建出一个强大的企业级应用架构。Struts2负责...
struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework struts2的教程,struts2整合了struts1+webwork.基于MVC的Framework
Struts 2是一个高度灵活且强大的Java Web应用程序开发框架,它在原有的Struts 1框架的基础上结合了WebWork的核心机制,旨在提供更高效、更易用的MVC(Model-View-Controller)架构。这个"开发框架struts2.1.8.zip...
- **Action与ActionForm**:在WebWork中,Action类负责处理请求,而ActionForm类(在Struts2中已被Action取代)用于收集和验证表单数据。 - **XWork容器**:WebWork依赖于XWork容器来管理Action和拦截器,这个容器...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
在视图层,Struts2提供了自己的标签库,这些标签在功能上与WebWork的标签相似,但有所增强。Struts2的标签使得在JSP页面上操作和展示数据变得更加简单,减少了硬编码,提高了代码的可读性和复用性。同时,Struts2...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。因为Struts 2和Struts 1有着太大的变化,...