Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaEE:JSF的更干净、更简单的替代方案_Java_Jakarta Ee - Fatal编程技术网

JavaEE:JSF的更干净、更简单的替代方案

JavaEE:JSF的更干净、更简单的替代方案,java,jakarta-ee,Java,Jakarta Ee,我们开始使用JavaEE6开发一个web应用程序 我们对JSF生成的HTML的复杂性感到惊讶。我的意思是,即使是一个简单的链接也有一些javascript处理代码。在我看来,这是一个可用性问题,因为浏览器的手势(如在链接上“ctrl+click”)根本不起作用。此外,我怀疑当我们需要维护代码或使用jQuery等javascript框架调整UI设计时,情况可能会变得更糟。它重新组合了我:Webforms与ASP.NETMVC。复杂性反对简单性 无论如何,这是我第一次使用JSF。所以我真的很想看看你

我们开始使用JavaEE6开发一个web应用程序

我们对JSF生成的HTML的复杂性感到惊讶。我的意思是,即使是一个简单的链接也有一些javascript处理代码。在我看来,这是一个可用性问题,因为浏览器的手势(如在链接上“ctrl+click”)根本不起作用。此外,我怀疑当我们需要维护代码或使用jQuery等javascript框架调整UI设计时,情况可能会变得更糟。它重新组合了我:Webforms与ASP.NETMVC。复杂性反对简单性

无论如何,这是我第一次使用JSF。所以我真的很想看看你的经历

你知道一个更简单的JavaEE渲染引擎吗? 您使用JSF的开发经验如何? 您是否使用JSF和大量jQuery/Dojo/Script.aculo.us开发了一个web应用程序?当您询问“更简单的渲染引擎”时,很难定义“简单”的含义。JSF是一种非常独特的动物,我担心在Java世界中没有任何更简单的东西是类似的

我在JSF方面的经验是非常积极的,这来自于一位在ASP.NET下有多年开发经验的人。学习曲线仍然陡峭,我无法想象如果没有某种形式的自定义Javascript甚至自定义组件,复杂的企业系统是可能的,但是在我看来,它比ASP.NET更简单,也比ASP.NET轻得多。他们解决了许多使ASP.NET难以使用的问题(例如,DOM的简单客户端ID、XHTML遵从性)

我最近开发了一个应用程序,该应用程序将很快投入生产,只使用Primefaces组件、标准Mojarra facelets、一个自定义组件和一些Javascript/隐藏输入字段解决组件框架错误的方法。除了我需要实施的几个变通办法之外,这是非常简单的。我对结果非常满意,利益相关者喜欢它,我绝对会在我的下一个项目中再次使用它


在组建团队的过程中,我在it方面的实际经验告诉我,最好让一位经验丰富的web应用程序开发人员作为项目的负责人,他在Javascript、CSS和JavaWeb技术方面拥有丰富的经验。团队的其他成员可以是入门级的开发人员,并提供一些指导。


我已经使用JSF 3年了,我可以说,JSF最强大的功能是它抽象了浏览器(表单输入或动作)http请求和Java之间的通信。
JSF提供了丰富的库,如:ICEfaces、RichFaces、ADF Faces、PrimeFaces,这些库为您提供了大量丰富的组件,您可能已经足够了。
JSF试图使web应用程序的开发更接近桌面应用程序。它解决了web应用程序最常见的任务(无论采用何种技术),并使用其生命周期将其自动化。
但是,如果您想在某些情况下实现与组件工作方式不同的特定行为,则必须采取一些变通办法,或构建自己的组件(这可能很难,复合组件除外)
我已经成功地为任务集成了JS,这些任务不需要在Java中触发一些操作,比如选择所有复选框、隐藏/显示页面的某些部分等等
JSF非常简单,但功能非常强大,对于某些任务需要一定的专业知识。
JSF的最新版本2.0解决了JSF的常见问题,这是因为它具有POST特性,所以现在我对它非常满意。
关于用户的手势,如ctrl+click,JSF中的web应用程序的工作方式与普通应用程序略有不同,后退、前进和刷新按钮有时可能无法按预期工作。但是,好的web应用程序也有相同的行为:尝试Ctrl+点击。。或者按“返回”按钮

如果您想完全控制HTML,请使用纯JSP。但是当您有一个巨大的web应用程序时,JSF是快速应用程序开发(RAD)的一个很好的选择。

您真的需要像JSF这样的基于组件的框架,还是在寻找一个更传统的基于web请求的MVC框架?如果是这样的话,你可能想调查一下或者。SpringMVC要求您使用核心Spring库。

我一直在一个大型项目中使用JSF。我有使用JQuery、普通HTML/css/javascript、GWT和Gxt的经验。我可以告诉你,JSF是其中最差的。如果您希望后端代码独立于前端代码,那么JSP就不是一个好办法。它将前端和后端捆绑在一起,没有明确的关注点分离。JSF的另一个问题是很难让你的头脑清醒过来。使用前端技术(例如javascript、html和css)创建优秀的AJAX页面非常容易。我14岁的儿子在学校被教如何做。使用JSF获得同样的效果非常复杂。看看如何定义为链接:
。并且没有办法指定表单操作url。您必须使用JSF托管bean和导航语义。这是一种全新的前端语言。因此,即使您想要设计前端样式或在其中添加JQuery,您也会被填满

配置构建和运行时环境也是一个难题。jar文件之间有太多的相互依赖关系,如果您没有JSF、Richfaces和SpringJAR的正确组合,那么您的应用程序甚至不可能脱离构建环境。如果您想得到这方面的提示,请转到maven搜索站点,查找类
javax.faces.component.UIViewRoot
。每个人和他们的狗都有。还要注意javax.faces和com.sun.faces的区别是什么?谁知道呢,但他们不在一起工作。有些版本只适用于RichFaces的特定版本

我的建议是保持清醒。给予