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实现,资料多,支持者多,前景看好一些。

这份帖子,我是不想再回,可是又不忍心让更多的朋友对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.javaeye.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的接口到处都是Http....和Servlet...,你怎么测试它?如果不能测试它,你怎么敢在里面放更多的业务逻辑?WebWork的可测试性,不是Struts能比的。

Moxie 感谢你的对webwork的热爱
引用:
WebWork使用强大的OGNL做为它表达式语言,它展现和存取整个对象结构的能力实在是太强了。特别是你用Hibernate
Open Session in View,这时你一定会爱死WebWork的。
我很惭愧的,很小声的说:
我也毫无救药的爱上了webwork。爱上了spring,爱上了hibernate,爱上了velocity。
action的易测试,是必须具备的!webwork在这方面做的太好了,IoC的支持,是的测试从繁到简!!!!哦,我不得不喜欢它!!!!!!!!!


Struts 得到了oracle,Borland等世界知名大公司的支持!有相当好的开发工具可以提高效率. 另外大家所说的struts的测试问题,有一些case,可以不用在servlet环境下测试. 还有webwork2最自豪的功能,在struts1.2.1中已经具备.还有最新发布的struts的配置文件,支持通配符.等等!

不能否认Webwork2有很好的易用性.但我认为这两个东西可以共存的,没有一个东西是另外一个东西的杀手! 也不可能是杀手 !!!
就象找对象,有的喜欢丰满的,有的喜欢找苗条的. 一样的道理!

IDE不会是生产率的关键因素,在J2EE这里尤如是。Struts的设计思路就已经土到那里了,外面包得再漂亮,最多是个还算舒服的绣花枕头。

我最看重的还是它的简单、灵活 Very Happy ,它让Web开发变得简单、优雅。

综上所述:个人认为webwork适合初学mvc模式的人,可以快速建立模型。struts为主流mvc实现,资料多,支持者多,前景看好一些。
个人观点仅供参考,进一步交流可以发邮件给我 hyluc88@yahoo.com。


strtus,两年前经过一个项目,很是不好。当时写tag,写js,累。页面难以重
用。面向过程嫌疑巨大。

webWork2了解中,不过也是基于Action这种机制,始终难逃面向过程嫌疑(方法类解决问题)

钟爱的依然是Tapestry,但Tapestry太多状态了,做点击率高的网站又吃不消。郁闷......

但无论如何,在相同质量的前提下,如果我作为项目组织者,无疑我会选择生产率最高的。无论是ASP,JSP,PHP,.net.......或者什么框架。

技术固然是一个原因,但也有资源,熟练度等等原因。
刚才看了iBATIS_JPetStore,惊奇的发现这样也行,
jpetstore用一个baseAction解决所有交互,改之用反射来调用formbean的xxx方法这就解决了大家对formbean和 action分离的很多意见,很明显这样更简单,而且也很好用,他还用map的分离了servlet的依赖,很象webwork的 actionContext。
综上所述:个人认为webwork适合初学mvc模式的人,可以快速建立模型。struts为主流mvc实现,资料多,支持者多,前景看好一些。
个人观点仅供参考,进一步交流可以发邮件给我 hyluc88@yahoo.com。
strtus,两年前经过一个项目,很是不好。当时写tag,写js,累。页面难以重
用。面向过程嫌疑巨大。
webWork2了解中,不过也是基于Action这种机制,始终难逃面向过程嫌疑(方法类解决问题)
钟爱的依然是Tapestry,但Tapestry太多状态了,做点击率高的网站又吃不消。郁闷......
但无论如何,在相同质量的前提下,如果我作为项目组织者,无疑我会选择生产率最高的。无论是ASP,JSP,PHP,.net.......或者什么框架。
技术固然是一个原因,但也有资源,熟练度等等原因。
在园区网建设过程中,我们常常面临诸多实际挑战,例如网络设计、IP规划、成本控制以及项目管理等。而名为“园区网的真实案例.zip”的压缩包文件提供了大量实用资源,包括真实园区网案例、综合实验拓扑图、相关脚本项目需求分析等,这些资料对于理解实践园区网建设具有重要意义。我们重点关注其中的“园区网综合实验”部分。 园区网是在学校、企业或政府机构等相对封闭区域内构建的网络,旨在为区域内用户提供高效、安全的数据通信服务。综合实验则是为了模拟真实环境,帮助学习者掌握园区网设计的关键技术步骤,通常涵盖网络设备选择与配置、VLAN划分、路由协议应用、QoS策略设定以及安全防护措施等内容。压缩包中的“最终”文件可能包含了项目实施的最终成果,如经过验证的网络设计方案、配置脚本或项目总结报告,这些资料有助于我们将理论知识转化为实际可执行的方案。 “命令”文件则可能包含了用于配置网络设备的CLI指令,涉及交换机路由器的基本配置,如VLAN设置、端口安全、静态路由或动态路由协议(如OSPF、RIP等)。通过研究这些命令,我们可以学习如何根据不同场景正确配置网络设备,以满足业务需求。 IP规划是园区网建设中的关键任务,合理的IP规划能够避免地址冲突,便于管理维护。案例中可能会展示如何根据园区规模、功能区划分及未来扩展需求制定合适的IP地址策略。成本控制同样重要,园区网建设不仅涉及设备购置费用,还包括安装、运维、升级等长期成本。案例可能探讨如何在满足功能需求的同时,选择性价比高的设备,优化布线方案,并通过节能技术降低运营成本。 项目总结则是对整个实施过程的回顾,涵盖遇到的问题、解决方案、经验教训及改进点,对提升项目管理能力问题解决技巧非常有帮助。这个压缩包的内容全面覆盖了园区网设计、建设管理的多个方面,是学习实践网络技术的宝贵资源。通过深入研究这些材料,我们可以提升网络规划实施能力,更好
内容概要:本文档《Grafana运维指南:从入门到精通》详细介绍了Grafana这一开源度量分析可视化工具的各个方面。首先解释了Grafana在数据监控分析中的重要性,强调其开源、可视化、多数据源支持、告警功能、灵活的仪表盘管理丰富的插件生态系统等特点。接着,文档逐步讲解了Grafana的安装与配置,包括系统准备、初始配置数据源配置等步骤。随后,深入探讨了数据源管理、仪表盘操作、插件使用等核心功能,提供了详细的配置使用指南。最后,文档介绍了性能优化、安全管理、日志分析等日常运维要点,并通过一个实际案例展示了Grafana在大型电商平台运维中的应用价值。 适用人群:适用于运维人员、系统管理员、开发人员以及任何需要进行数据监控分析的专业人士,尤其是那些对Grafana有一定了解或有兴趣深入了解的人群。 使用场景及目标:①帮助用户掌握Grafana的安装配置基本使用方法;②指导用户如何整合多种数据源,创建管理仪表盘;③提供性能优化、安全管理等方面的建议,确保Grafana在实际应用中的高效稳定运行;④通过实际案例分享,展示Grafana在复杂业务环境中的应用效果,提升用户对Grafana的理解应用能力。 其他说明:本文档不仅涵盖了Grafana的基础知识技术细节,还结合实际案例,帮助读者更好地理解应用Grafana。建议读者在学习过程中结合实际操作,通过实践加深对Grafana的理解。此外,文档鼓励读者参与社区交流,分享经验心得,共同进步。
内容概要:本文详细介绍如何使用Logisim搭建单周期MIPS硬布线处理器,旨在深入理解计算机体系结构指令执行机制。文章首先介绍了MIPS架构的特点及其在计算机体系结构中的重要性,随后阐述了Logisim工具的功能及其在数字电路设计中的优势。接着,文章详细描述了单周期MIPS处理器的工作原理,包括指令的取指、译码、执行、访存写回等步骤,以及硬布线控制器的作用设计方法。在此基础上,文章逐步讲解了使用Logisim搭建单周期MIPS硬布线处理器的具体步骤,包括前期准备、构建基本框架、设计数据通路、设计硬布线控制器、电路连接与整合,以及测试与调试。最后,文章总结了搭建过程中的重点难点,并探讨了单周期MIPS处理器的性能优化方向MIPS架构的应用前景。 适合人群:计算机科学专业的学生、对计算机体系结构感兴趣的初学者、从事嵌入式系统开发的技术人员。 使用场景及目标:①帮助读者深入理解MIPS架构单周期处理器的工作原理;②提供详细的实践指导,使读者能够在Logisim中搭建并测试单周期MIPS硬布线处理器;③培养读者的数字电路设计能力、逻辑思维能力问题解决能力。 阅读建议:本文内容详实,涵盖了理论知识实践操作,建议读者在阅读过程中结合Logisim工具进行实际操作,以便更好地理解掌握相关概念技术。同时,对于遇到的问题,可以通过反复调试查阅资料加深理解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值