选择JSF不选Struts的十大理由

总的来说,我建议在新项目中优先考虑JSF。虽然常常有一些商业上的因素迫使我们为现有的项目选择了Struts,而且那些解决方案还有待考验 ,但是,让我们面对一个事实:JSF比Struts好多了。

下面是我选择JSF而不选Struts的十大理由:
1.Components(组件)
2.Render Kits
3.Renderers
4.Value Binding Expressions(值绑定表达式)
5.Event Model(事件模 型)
6.Extensibility(可扩展性)
7.Managed Beans(Dependency Injection 依赖注入)
8.POJO Action Methods 
9.JSF is the standard Java- based web app framework (JSF是java web应用程序的标准框架)
10.There"s only one Struts(只有一个Struts)

10.There"s only one Struts(只有一个 Struts)
Struts是一个开源产品,然而JSF是一个标准。这个细节常常被新的JSF学习者忽略,其实这是显而易见的,因为我们有多个JSF的 实现。虽然JSF还很不成熟,但是我们已经有了2个优秀的JSF实现可以选择:Sun的参考实现和Apache的MyFaces。另一方面,我们只有一个 Struts。

9.JSF is the standard(JSF是标准)
JEE 5.0要提供一个JSF的实现,这表明JSF不久将会无处不在 。这可能与你无关,但是和工具供应商密切相关。现在大概有50个java web应用程序框架,工具供应商不会情愿去支持一个特别的框架, 但是他们会毫不犹豫的去支持一个标准。而且不止供应商,开源项目也会迅速的聚集在JSF的四周,争先恐后的去实现相同的功能。比如说,直 到我们去实现本质上和Shale的Tapestry差不多的视图的时候,我才知道Facalets。(从长远来看,我相信这种冗余是件好事,会给我们带来好 处)

8.POJO Action Methods
Struts的行为是和Struts的API绑定在一起的,但是JSF的行为方法可以在POJPO中实现。 这意味着你不用在表单和模型对象之间实现一个多余的行为层。顺便说一下,在JSF里面没有行为对象,行为在模型对象中实现。但是也请注意 一点:如果你愿意你也可以生成与JSF独立的行为对象。在Struts里面,你有Form Bean和Action Bean。Form Bean包含数据而 Action Bean包含逻辑。OO狂会想去合并前2者,在Struts你办不到。但是在JSF中,你可以分开数据和逻辑,也可以合并到一个对象中, 一切由你决定。

7.Managed Beans(Dependency Injection 依赖注入)
和Spring一样,JSF也使用了依赖注入(DJ )(或控制反转(IoC))去实例化和初始化Bean。Struts的确为你生成了Form Bean和Action Bean,但是JSF可以为你生成各种各 样的Managed Bean。

6.Extensibility(可扩展性)
这个很重要。JSF有6个对象实现了这个框架的大部分功能,而且你可以很 容易的用你自己的实现代替原有实现。比如你想加一个自定义参数在JSF表达式语言里面,或是添加一个自己的视图控制器以便于区分组件和 HTML。事实上Shale实现了上面的功能。如果你还没有满足,JSF提供了几个地方你可以轻松的控制JSF的生命周期。Shale给你的会更多。

5.Event Model(事件模型)
JSF的事件模型使你可以对值改变,动作,JSF生命周期阶段变换等作出反应。在JSF1.1中,那 些事件都是在服务器端处理的,这肯定是一个缺陷,好在JSF2.0计划支持客户端事件,拭目以待吧。

4.Value Binding Expressions(值绑定表达式)
在Struts中,你负责把数据从Form传递到模型对象。你实现的Action 的execute方法是把Form作为一个参数。然后你再手动的把数据从Form Bean里面取出放到模型对象里面。你要为应用里面的每个Form做这 些事情,然而在JSF里面,你只需像这样:#{model.property} 就够了,其他的交给JSF来处理。

3.Renderers
你有看过 Struts的标签的源代码吗?它直接生成HTML。JSF组件标签什么都不生成,它和服务器上的一对component-renderer对应。Component维护组件 状态,rendered负责获得视图。重点是renderers是可插拔的,即你可以根据自己需求实现然后替代掉默认实现。比如说我在NFJS上面的Felix 谈话中举例说明了怎么去实现一个自定义的label renderer。你只需要配置你的renderer,JSF就会自动在你的应用程序里面使用他。

2.Render Kits
在几年前我曾经有份Struts咨询工作,我们必须同时支持浏览器和无线设备,非常痛苦。但是用JSF来完成那 个任务非常容易,因为你可以生成你自己的render kit-为一种特定显示技术的renderers的集合-然后配置到JSF里面。

1.Components(组件)
组件是Struts和JSF之间最大的区别。就像Swing一样,JSF提供丰富的底层构件去开发组件然后添加到标准的 组件集。那些底层构件让你很容易的生成自己的组件并且和别人共享。现在我们到处都能看到自定义组件跳出来,比如说Oracle的ADF和 MyFaces,两者都提供了丰富的组件集,就像javascript日历,tree等等。当然,组件只是一部分。典型的是,组件都和一个独立的renderer对 应,这给我们带来了真正的好处(看第3条)。但是和JSF中的很多东西一样,你不一定要墨守成规。只要你愿意,你可以实现render自己的组 件,虽然这样你会失去给组件加入别的renderer的能力。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=562349

[点击此处收藏本文]   发表于 2005年12月26日 12:18 PM

 
wangzx 发表于2005-12-26 2:37 PM  IP: 218.19.174.*
JSF 相对Struts而言,确实有可圈可点的地方,不过,在简单性方面,却还不如Tapestry。

综合而言,这些基于服务端的WEB框架在概念上始终不直观,要开发复杂、友好的WEB界面,还是会逐步淘汰出历史舞台的。

AJAX是一个很好的替代方案。如果你选择一个好的ajax框架的话,完全可能比JSF开发效率更高。

 
顺 发表于2005-12-26 4:47 PM  IP: 222.90.92.*
都在谈ajax,都在说替代现有框架,事实上连个完整性的概念都没有,jsf是基于mvc结构的实践沉淀,分量十足,如果它要被淘汰了,那么mvc就基本淡出web舞台,而ajax这些新奇之秀真的能顶住那么大的压力?

 
方成 发表于2005-12-26 5:16 PM  IP: 219.236.9.*
ajax在客户端的交互方面确实是有特别的地方.不信,你到http://www.fcsoft.com.cn 看看 eform自定义表单

 
rt 发表于2005-12-26 6:52 PM  IP: 219.142.237.*
狗屁,没成熟的东西,何必去当实验品.
几十个框架,前台展现又有什么大的分别?又有哪一个是你自己做的?
看看你的项目,基本功能实现了吗?权限做好了吗,流程实现了吗?安全性如何,效率如何,报表做得如何?这些与用了什么前台框架有关系吗

 
bokei 发表于2005-12-26 8:49 PM  IP: 59.42.153.*
AJAX不是万能的,只是一个表现层的技术,我想谁都不会把程序的主要逻辑放到大家拿个Notepad都能看到的地方。因此怎样把Ajax和各种框架结合是最重要的。所以要使用AJAX就需要借助于各种框架提供的AJAX支持,相信随着AJAX的发展,各种框架很快就会提供不同的解决方案。

选择WEPOS的十大理由

02-13

[b]WEPOS是什么?[/b]rnWEPOS即:Windows Embedded for Point of Service,是一种POS终端软件平台,它所瞄准的是如:POS系统、店内咨询台、自助服务检测系统和加油站等的应用领域。属于微软嵌入式系统的产品系列平台之一。rnrn[b]理由一 简便易用[/b]rnWEPOS支持对外设的即插即用功能。rn将标准的台式机 PC 即插即用的支持扩展到零售外设,这将使零售商能够迅速将当前和原有的零售外设安装和集成到一个服务点系统中。rnrn[b]理由二 集中管理[/b]rn它提供了远程监控功能,可使企业通过联网的服务器监视POS系统,使其更易于管理;它提供了智能的设备管理功能,可以在发生故障之前识别需要维修的设备;它提供了其他一些能够确保零售商轻松对设备和软件进行安全更新的其他功能。rnrn[b]理由三 服务站通用操作界面[/b]rnWEPOS 提供了一个优化的标准平台。微软操作系统的通用界面和操作感,可以帮助IT经理和商店店员快速掌握新体验中心的操作方式。rnrn[b]理由四 强化功能[/b]rn为零售外围设备(如扫描仪、MSR 和收据打印机)提供即插即用功能。rn易于安装和设置。rn通过 Microsoft Update 获取 Microsoft 提供的操作系统更新。rn支持标准 PC 网络管理解决方案。rn为应用程序开发者构建智能、联网的应用程序提供 Microsoft .NET Framework 支持。rnrn[b]理由五 准确的系统报告[/b]rn主动系统警告和准确的报告节省了IT资源。具有先进的系统警报和准确报告功能,客户可以利用这些功能监测硬件、软件和操作系统的状态,采取主动的措施查找潜在的问题。rnrn[b]理由六 降低成本[/b]rnWEPOS 通过在为服务点系统提供最长的已发布产品支持使用周期的同时降低操作系统和应用程序的开发成本、部署成本、维修和维护成本以及 POS 硬件成本,从而降低了零售服务点使用周期成本。rnrn[b]理由七 适用于全线服务点系统[/b]rn自动结账系统 rn信息站 rn食品订购信息亭 rnATMs rnrn[b]理由八 强有力的支持[/b]rnWindows Embedded for Point of Service 赋予零售商创建最强劲客户交互的能 力,提供一个标准的和为零售业优化的平台,包括所要求的零售业专有技术,并提供对标准零售应用和外设的全面支持。rnrn[b]理由九 无缝集成[/b]rn允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。rnrn[b]理由十 简单的基本构件设备[/b]rn最低的操作系统硬件要求是:rnPentium II,233 MHz rn64 MB RAM rn280 MB 内核映像 rnrn[b]总结[/b]rn随着整个社会e化脚步的加快,使得产品与人们之间的沟通更加紧密。POS产业也是一样地在进步,从早期手动的收银台只有简单的功能而已,演变至今,在商店内的收银台与条形码扫描机,打印发票机,刷卡机等多媒体周边产品做结合。rnWEPOS是基于Windows XP Embedded Service Pack 2 中的技术,可用于优化零售和服务业的POS设备。它的平台简单易用,采用支持当前和未来零售环境需求的技术,并能提供更低的使用周期成本,是个不错的选择。

选择Windows CE 的十大理由

01-09

[img=http://uphotos.eepw.com.cn/habinuo121/pics/7a7714f58f13a5ecd93578662dc9b158.jpg][/img]rnrn[b]Windows CE是什么?[/b]rnWindows CE是一个具有战略意义的操作系统。它拥有windows操作系统的特点,支持32位虚拟内存机制、按需分配内存和内存映射文件;他也是抢先式多任务并具有强大通信能力的Win32嵌入式操作系统,是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而设计的。rn rn[b]理由一 支持广泛的网络通讯[/b]rn因为不同的应用程序和设备在通讯方面的要求不同,所以Windows CE提供了支持广泛的硬件和通讯技术。rnWindows CE支持网络通讯所用的各种硬件设备包括: 串行电缆; 红外传送器; 广播传送器; 局域网络; 调制解调器。rn rn[b]理由二 提供高水平的API[/b]rnWindows CE也提供的API可以简化在一个应用程序中包含网络通过的过程。rn两种高水平的API令网络通讯中的一些更普通的应用变得简单。rnWinInet API支持HTTP 1.0和FTP Internet浏览协议。rn它大大地简化了编写一个Internet客户应用程序的过程。WinInet也支持安全通讯。rn有三种安全协议:Secure Sockets层(SSL)2.0版和3.0版,以及私有通讯技术(PCT)1.0版。rn rn[b]理由三 支持远程访问[/b]rnWindows CE支持远程访问服务器(RAS)的客户,RAS是一个用于连接远程设备的多协议规则。Windows CE RAS客户支持实际上和标准的Windows工具是完全相同的,但是一次只支持一个点对点的连接。rn rn[b]理由四 支持多种处理器[/b]rnWindows CE是一个可移植的操作系统,支持下列CPU:rnrn[img=http://uphotos.eepw.com.cn/habinuo121/pics/f4a68c5ceb032ee02bf6d73d7622da50.jpg][/img]rnrn[b]理由五 通用开发工具[/b]rn Windows CE Embedded Toolkit for Visual C++;rn Windows CE Toolkit for Visual J++;rn Windows CE Toolkit for Visual Basic;rn 其它第三方工具等rnrn[b]理由六 可再用资源[/b]rnWindows CE支持COM的进程内函数、部件化的Java VM和Visual Basic脚本,并提供丰富的、经常在嵌入式应用中使用的部件化的软件,包括通信、数学or统计、图形or图像、数字信号处理、用户界面等。rn据统计目前,已有超过1.7万种Win32应用作为巨大的代码库,OEM厂商可以从中获得适当的技术许可,同时,软件开发商们可将其现有的资源快速移植到Windows CE平台上。rn rn[b]理由七 强稳定性[/b]rnWindows CE一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。其用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。rn rn[b]理由八 优秀的线程响应[/b]rn对高级别IST(中断服务线程)的响应时间上限的要求更加严格,在线程响应能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。rn rn[b]理由九 支持嵌套中断[/b]rn允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。rn rn[b]理由十 开放源代码[/b]rn微软发布了自己的新系统,还宣布向消费者和BSquare、Centrality、Micros Systems等嵌入式厂商完全开放CE 6.0的核心源代码,并提供Visual Studio 2005 Professional的免费拷贝,并使现有的Platform Builder集成开发环境(IDE)成为VS2005的一个插件。rn100%源码开放的创举对于微软来说是个相当大的突破,这样的结果,带给开发伙伴的好处也远大于过去采用封闭模式的流程,通过获得Windows Embedded CE源代码的某些部分,比如:文件系统、设备驱动程序和其他核心组件,嵌入式开发者可以选择他们所需的源代码,然后编译并构建自己的代码和独特的操作系统,迅速将他们的设备推向市场。rn rn[b]总结[/b]rn嵌入式软件技术已经引领人类进入一个数字化、智能化的时代了。当前,我国的嵌入式软件研发人才需求缺口巨大。Windows CE .NET系统是微软提供的,兼容于.NET Framework的开发组件:.NET Compact Framework,可以让正在学习.NET或已拥有.NET程序开发技术的开发人员能迅速而顺利的在搭载装置上开发应用程序哟。rn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试