|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.我的一个客户不晓得该选用Struts仍是JSF。就像你意料的那样,我一般会问:这2中框架之间有甚么区分?固然,除我的这个客户外良多人都面对如许的选择。
总的来讲,我倡议在新项目中优先思索JSF。固然经常有一些贸易上的要素迫使我们为现有的项目选择了Struts,并且那些办理计划另有待磨练,可是,让我们面临一个现实:JSF比Struts很多多少了。
上面是我选择JSF而不选Struts的十年夜来由:
1.Components(组件)
2.RenderKits
3.Renderers
4.ValueBindingExpressions(值绑定表达式)
5.EventModel(事务模子)
6.Extensibility(可扩大性)
7.ManagedBeans(DependencyInjection依附注进)
8.POJOActionMethods
9.JSFisthestandardJava-basedwebappframework(JSF是javaweb使用程序的尺度框架)
10.TheresonlyoneStruts(只要一个Struts)
10.TheresonlyoneStruts(只要一个Struts)
Struts是一个开源产物,但是JSF是一个尺度。这个细节经常被新的JSF进修者疏忽,实在这是不言而喻的,由于我们有多个JSF的完成。固然JSF还很不成熟,可是我们已有了2个优异的JSF完成能够选择:Sun的参考完成和Apache的MyFaces。另外一方面,我们只要一个Struts。
9.JSFisthestandard(JSF是尺度)
JEE5.0要供应一个JSF的完成,这标明JSF不久将会无处不在。这大概与你有关,可是和工具供给商亲切相干。如今也许有50个javaweb使用程序框架,工具供给商不会宁愿往撑持一个出格的框架,可是他们会坚决果断的往撑持一个尺度。并且不止供给商,开源项目也会敏捷的会萃在JSF的周围,力争上游的往完成不异的功效。好比说,直到我们往完成实质上和Shale的Tapestry差未几的视图的时分,我才晓得Facalets。(从久远来看,我信任这类冗余是件功德,会给我们带来优点)
8.POJOActionMethods
Struts的举动是和Struts的API绑定在一同的,可是JSF的举动办法能够在POJPO中完成。这意味着你不必在表单和模子对象之间完成一个过剩的举动层。特地说一下,在JSF内里没有举动对象,举动在模子对象中完成。可是也请注重一点:假如你乐意你也能够天生与JSF自力的举动对象。在Struts内里,你有FormBean和ActionBean。FormBean包括数据而ActionBean包括逻辑。OO狂会想往兼并前2者,在Struts你办不到。可是在JSF中,你能够分隔数据和逻辑,也能够兼并到一个对象中,统统由你决意。
7.ManagedBeans(DependencyInjection依附注进)
和Spring一样,JSF也利用了依附注进(DJ)(或把持反转(IoC))往实例化和初始化Bean。Struts切实其实为你天生了FormBean和ActionBean,可是JSF能够为你天生林林总总的ManagedBean。6.Extensibility(可扩大性)
这个很主要。JSF有6个对象完成了这个框架的年夜部分功效,并且你能够很简单的用你本人的完成取代原有完成。好比你想加一个自界说参数在JSF表达式言语内里,或是增加一个本人的视图把持器以便于辨别组件和HTML。现实上Shale完成了下面的功效。假如你还没有满意,JSF供应了几个中央你能够轻松的把持JSF的性命周期。Shale给你的会更多。
5.EventModel(事务模子)
JSF的事务模子使你能够对值改动,举措,JSF性命周期阶段变更等作出反响。在JSF1.1中,那些事务都是在服务器端处置的,这一定是一个缺点,幸亏JSF2.0企图撑持客户端事务,拭目以待吧。
4.ValueBindingExpressions(值绑定表达式)
在Struts中,你卖力把数据从Form传送到模子对象。你完成的Action的execute办法是把Form作为一个参数。然后你再手动的把数据从FormBean内里掏出放到模子对象内里。你要为使用内里的每一个Form做这些事变,但是在JSF内里,你只需像如许:#{model.property}就够了,其他的交给JSF来处置。
3.Renderers
你有看过Struts的标签的源代码吗?它间接天生HTML。JSF组件标签甚么都不天生,它和服务器上的一对component-renderer对应。Component保护组件形态,rendered卖力取得视图。重点是renderers是可插拔的,即你能够依据本人需务实现然后替换失落默许完成。好比说我在NFJS下面的Felix发言及第例申明了怎样往完成一个自界说的labelrenderer。你只必要设置你的renderer,JSF就会主动在你的使用程序内里利用他。
2.RenderKits
在几年前我已经有份Struts征询事情,我们必需同时撑持扫瞄器和无线设备,十分疾苦。可是用JSF来完成谁人义务十分简单,由于你能够天生你本人的renderkit-为一种特定显现手艺的renderers的汇合-然后设置到JSF内里。
1.Components(组件)
组件是Struts和JSF之间最年夜的区分。就像Swing一样,JSF供应丰厚的底层构件往开辟组件然后增加到尺度的组件集。那些底层构件让你很简单的天生本人的组件而且和他人共享。如今我们各处都能看到自界说组件跳出来,好比说Oracle的ADF和MyFaces,二者都供应了丰厚的组件集,就像javascript日历,tree等等。固然,组件只是一部分。典范的是,组件都和一个自力的renderer对应,这给我们带来了真实的优点(看第3条)。可是和JSF中的良多工具一样,你纷歧定要抱残守缺。只需你乐意,你能够完成render本人的组件,固然如许你会得到给组件到场其余renderer的才能。
有良多只能领悟不克不及言传啊,好比Renderer等。翻译得欠好,人人能够往看看原文。原文出自DavidGearysBlog,原文地点为:http://jroller.com/comments/dgeary/Weblog/
http://blog.csdn.net/cqluojia/services/trackbacks/
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 |
|