JAVA编程:挑选JSF不选Struts的十年夜来由
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/
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 是一种使网页(Web Page)产生生动活泼画面的语言 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Java是一种计算机编程语言,拥有跨平台、面向对java 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 Java是一种计算机编程语言,拥有跨平台、面向对java
页:
[1]