Java-EE:JSF的更简洁的替代品 [已关闭]

2022-09-01 18:26:42

我们开始使用Java EE 6开发一个Web应用程序。

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

无论如何,这是我第一次与JSF合作。所以我真的很想读一读你的经历。

您知道一个更简单的 Java EE 渲染引擎吗?

您在 JSF 的开发经验如何?

你有没有使用JSF和大量的jQuery/Dojo/Script.aculo.us开发了一个Web应用程序?


答案 1

当您询问“更简单的渲染引擎”时,很难定义“简单”的含义。JSF是一种非常独特的动物,恐怕在Java世界中没有比这更简单的东西了。

我在JSF的经历非常积极,这来自一个在 ASP.NET 下有多年发展经验的人。学习曲线仍然陡峭,我无法想象复杂的企业系统在没有某种形式的自定义Javascript甚至自定义组件的情况下成为可能,但是在我看来,它比 ASP.NET 更简单,而且重量也要轻得多。他们解决了许多使 ASP.NET 难以处理的问题(例如,DOM的简单客户端ID,XHTML合规性)。

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

在组建一个团队时,我对它的真实经验告诉我,最好让一个经验丰富的Web应用程序开发人员作为项目的负责人,一个在Javascript,CSS和Java Web技术方面拥有丰富经验的人。团队的其他成员可能是入门级开发人员,只有一点指导。


答案 2

我一直在与JSF合作一个大型项目。我有使用JQuery,普通HTML / css / javascript,GWT和Gxt的经验。我可以告诉你,JSF是最糟糕的。如果您希望后端代码独立于前端代码,那么 JSP 就不是要走的路。它乱七八糟地将您的前端与后端联系起来,而没有明确的关注点分离。JSF的另一个问题是,很难让你的头脑清醒。使用前端技术(例如javascript,html和css)创建出色的AJAX页面非常容易。我14岁的儿子在学校里学会了如何做到这一点。使用 JSF 获得相同的效果非常复杂。看看如何定义为链接:.并且无法指定表单操作 URL。您必须使用 JSF 托管 Bean 和导航语义。这是一种全新的前端语言。因此,即使您想设置前端样式或在其中添加JQuery,您也会被塞满。<h:commandLink value="New" immediate="true" action="#{projectUiService.showProjectCreate}" />

配置构建和运行时环境也是一件痛苦的事情。jar文件之间有太多的相互依赖关系,如果你没有JSF,Richfaces和Spring Jars的正确组合,那么你甚至没有希望让你的应用程序脱离构建环境。如果您想获得提示,请转到maven搜索网站并查找类。每个人和他们的狗都有。还要注意javax.faces和com.sun.faces - 有什么区别?谁知道呢,但它们不能一起工作。某些版本仅适用于特定版本的RichFaces。javax.faces.component.UIViewRoot

我的建议 - 保持清晰。为应用提供弹簧后端和普通 HTML 前端。您无法在 JSF 中编写一个像样的大型企业级应用程序。这太复杂了。你最终会得到一个巨大的整体代码库,几乎不可能维护。


推荐