sus*_*ani 114 user-interface jsf javascript-framework
我正在阅读JSF,它是一个UI框架并提供了一些UI组件.但它与jQueryUI,AngularJS,ExtJS甚至纯HTML,CSS和JavaScript中可用的组件数量有何不同或更好.
为什么有人要学习JSF?
Bal*_*usC 147
JSF到普通JSP/Servlet/HTML/CSS/JS就像jQuery一样简单JS:用更少的代码做更多事情.以PrimeFaces(基于jQuery + jQuery UI)为例,浏览其展示以查看完整的代码示例.BootsFaces(基于jQuery + Bootstrap UI)也展示了完整的代码示例.如果你仔细研究这些例子,那么你会发现你基本上需要一个简单的Javabean类作为模型,一个XHTML文件作为视图.
请注意,您不应该将JSF视为单独的HTML/CSS/JS的替代,您还应该考虑服务器端部分(特别是:JSP/Servlet).JSF消除了收集HTTP请求参数,转换/验证它们,更新模型值,执行正确的Java方法来处理业务内容以及生成HTML/CSS/JS样板代码的所有样板的需要.使用JSF,您基本上最终将XHTML页面作为视图定义,将Javabean类作为模型定义.这大大加快了开发速度.
与基于每个组件的Web MVC框架一样,您在JSF中对渲染的HTML/CSS/JS进行了不那么细粒度的控制.添加自定义JS代码并不是那么容易,因为你必须考虑服务器端的JSF视图状态(例如,在JS端启用禁用按钮不会启用JSF端的按钮,这反过来又是巨大的安全优势).如果这是一个主要的showstopper,那么请寻找一个基于动作的Web MVC框架,如Spring MVC.你只考虑到,你必须写所有的HTML/CSS/JS代码的帐户你自己.此外,如果您从Facelets退回到JSP,您也会错过高级模板功能.
另一方面,如果您有一个基于JSP/Servlet/HTML/CSS/JS/jQuery的大型网站,并且您想将重复的JSP/Servlet/HTML/CSS/JS/jQuery样板代码重构为可重用的组件,那么其中一个解决方案是JSF.自定义模板,标签文件和组件可以为此提供帮助.从这个角度来看,JSF位于JSP/Servlet/HTML/CSS/JS/jQuery之上(这也是为什么在深入了解JSF之前理解这些基础知识非常重要的原因).
您可以在此处找到基于JSF的真实启动项目:Java EE Kickoff App.你会发现它包含在JSF旁边,就像HTML5,CSS3和jQuery一样好.
And*_*ite 28
创建JSF是为了让java商店不必学习像jQuery这样的东西并构建复杂的JS,而是专注于纯Java堆栈.在一个时间就是金钱的世界里,许多地方已经专注于Java开发,堆栈中少一个语言/片段使得培训和维护更快,从而更便宜.
我将补充说,JavaScript很容易成为大型团队的维护噩梦,特别是如果项目中的某些开发人员不是高度精通网络的话.
Dan*_*lor 23
使用Javascript和jQuery等框架,您可以获得充分的灵活性和完全控制.使用ext等,您将失去很多控制权并且必须适应框架.使用JSF,您完全失去控制,必须完全适应框架.你在生命周期等中被调用,最后你无法控制服务器的调用和不执行调用.如果你要做一些被认为是"特殊"的事情,你就处于非常困难的境地.在JSF世界中,即使是多列表排序或只能键入有限字符集(例如数字字段)的字段等基本内容也被视为"特殊".
但是,您拥有的灵活性越多,您可以做出的错误或不良做法就越多.高灵活性仅适用于高度智能的程序员,其他人则会将项目变成无法控制的噩梦.
但是,由于JSF及其灵活性有限,总是只有少数(甚至只有一种)正确的做法.你是非常有限的,你不能做捷径,你必须写更多的XML等 - 但是当适应标准时,对无经验或低技能程序员将产生的代码有更好的控制.因此,大公司喜欢JSF,因为它对他们来说"更安全".
当我从GWT转到JSF时,我感到很震惊,对我来说有多少事情,被认为是非常不典型的,有多么简单的事情很难实现.更重要的是,即使进行最小的更改,例如在标签后添加':'符号,在GWT/jQuery驱动的应用程序中将更改一个函数生成标签,需要更改具有本地化属性的数十个文件,这甚至不被除了我以外的任何人
小智 10
我强烈反对jsf添加任何东西.它只会增加开销.在服务器上做ui的东西是我听过的最荒谬的事情.大型团队的javascript工作得很好 - 它被称为重用代码.
只需将jquery包装在一些jsp标签中,这就是你所需要的,而且你已经完成了,并且不会忍受.jsf和richfaces的.shackles和scalability问题.
使用JSF的好处不仅在于生成xhtml + css + js.有时,JSF会对您可以生成的标记施加限制,就像任何基于组件的框架一样.但JSF不仅仅是为了它,它的生命周期也很有帮助.验证输入后,它可以更新模型并同步您的服务器端bean.你只需说"无论用户在这里输入什么,检查它是否为数字,如果是,则将其存储在对象XX中的属性YY中",JSF将完成所有这些操作.
所以是的,您仍然可以使用JQuery,JS等.但是,在编写服务器端代码时,JSF提供了许多好处,并且可以节省大量的锅炉.
在使用JSF,Spring MVC,Struts,Grails,JQuery和ExtJS之后,我认为Grails + ExtJS是一个强大的组合.
我会在任何一天选择Grails而不是JSF.我喜欢ExtJS作为客户端框架和库的完整性,但它带来了比JQuery更陡峭的学习曲线.
归档时间: |
|
查看次数: |
51110 次 |
最近记录: |