JSF 与 Stripes,哪个最好?[关闭]
-
27-09-2019 - |
题
哪个最好,或者换句话说,wish 最容易使用?条纹或 JSF。
虽然我没有愤怒地使用过这两种方法,但我需要衡量启动新项目和转换现有 Struts 项目的最佳选择是什么。
我担心 JSF 不会呈现出我想要的效果,但其他人的体验如何?看起来条纹更直接,我的这个假设是正确的吗?
解决方案
哪个最好,或者换句话说,哪个最容易使用?条纹或 JSF。
哪个是最好的?嗯,Stripes 和 JSF 是不同的。前者是基于操作的框架(如 Struts),而后者是基于组件的框架(如 Wicket)。因此,答案将取决于您对基于操作的流程与基于组件的层次结构的经验和知识,两者都有其优点和缺点。哪个最简单?条纹,毫无疑问。
我喜欢条纹的原因:
- 这很简单,即它的学习曲线较低。
- 我喜欢它的约定优于配置的方法。
- 它很轻。
- 它有详细的文档记录(并且由于其简单性,您不需要大量文档)。
- 它有一个小 但 反应式社区(您将在 邮件列表).
如果两者对你来说都是新的,我会选择 Stripes。如果你想学习基于组件的框架,我认为从 Wicket 开始更容易(另请参阅 Gavin King 在 如何开始学习 Java EE 6).
其他提示
不幸的是,JSF 没有良好的新闻报道,而且声誉不佳也是合理的(已故的 Sun Microsystems 又错失了一次机会)。但是,自从提出问题以来,很多事情都发生了变化 - 新的 JSF 2.0 版本发布了。
那么 JSF 1.X 出了什么问题,与 Stripes、Spring MVC 或 Wicket、Play、Click 等相比,是什么让它如此令人恼火呢?
- 只支持POST请求,导致性能问题(GET请求可以被有效缓存),难以实现可收藏的URL等
- JSF 1.X 基于 JSP 页面,不适合处理更复杂的 JSF 页面生命周期
- 组件的创建既困难又麻烦。
- 导航规则的定义非常不灵活而且非常冗长
- 强制 XML 配置
- 没有清洁的资源管理方法
好消息是新的 JSF 版本解决了所有这些缺点。
- GET 和 POST 请求同样得到很好的支持。
- 配置可以借助注释来完成(我们可以坚持使用 XML,这是更好的解决方案),简化了导航规则定义,我们甚至可以使用约定优于配置的方法。
- 组件创建很容易。
- 有一些新的且非常有用的组件范围:查看范围和闪存范围(类似于 Ruby on Rails 中的已知范围)使用户能够轻松处理更复杂的流程。
- 有标准的资源管理方法和更好的错误处理设施
- 我们可以定义项目阶段,以便在各种环境(测试、生产等)中更轻松地处理项目
- 基于 XHTML 的 Facelets 取代了 JSP,成为更好的视图定义替代方案
- 内置 AJAX 请求支持
- JSF 是 Java EE 标准的一部分,这意味着如果无聊的开发人员决定转向下一个闪亮且更时尚的框架,它们不会在一夜之间消失。
最后,JSF 2.X 的巨大优势:精心设计、美观且性能良好的即用型组件(RichFaces、PrimeFaces、ICEFaces)的色调。这些库提供了数百个通常在 WWW 页面上使用的组件,无需编写任何 JavaScript 或 CSS 即可使用这些组件。这是生产力的巨大提升。
尽管如此,与 Stripes 等基于操作的框架相比,JSF 可能存在性能问题,后者更接近 HTTP 请求,无需构建组件模型(使用更多内存、更多网络带宽)。
但对于性能不必极高的应用程序来说,JSF 2.0 是一个非常好的、合理的选择。学习曲线不再像以前那样陡峭,再加上重用现有组件的能力使其真正具有吸引力。从这个角度来看,Stripes 就没那么有吸引力了。
因此,例如,对于 2000 名员工使用的 Intranet 公司应用程序,JSF 2.0 将是不错的选择。
在最佳web框架?像通常在这个问题的结果“它取决于”的答案。
另一个问题:“什么是最容易使用的框架”。比较容易回答,那条纹。 JSF有一个臭名昭著的陡峭的学习曲线。在另一方面条纹是容易安装和容易学习。
条纹框架是像Struts但只有更好。对于例如,它使用注释,而不是XML配置文件。就像Struts框架是基于行动框架,只有更优雅。这意味着它紧密地遵循HTTP事件处理的无状态特性。这是如果你想在你是如何产生的是网页的高性能和最大的灵活性好。
像JSF框架是不基于操作框架,但基于组件的框架。这意味着移动之间的HTTP和应用程序的抽象层。这一层能够程序JSF应用程序,如果你正在编写一个Swing应用程序。因此JSF基本上处理部件模型和无状态HTTP生命周期之间的范例不匹配。这个抽象层。然而,将花费一些性能;还它会给你稍微更小的程度上生成的HTML控制的。
JSF更为使用,所以你应该有更好的支持,如果有什么奇怪的情况发生。这是足够的理由让我去使用它。
我会使用JSF。它被用于更广泛和 ICEfaces的是一个非常方便的包用于基于JSF的应用程式。
JSF是Java EE的6+的一部分。这意味着它会提供并维持很长一段时间,这对我们很重要。
,也可能发生不同的实施方式,其允许选择对于给定的目的,最好的一个。
Seam 是用于开发 JSF 应用程序的不错的应用程序堆栈,但不确定 Stipes。
- 转换
- 很好的ajax支持
- 丰富的组件集
- XML 配置上的注释
我不喜欢 JSF 的一件事是学习曲线太高,特别是如果您是 JSF 的新手。
像Struts条纹并没有真正做很多关于你的应用程序。除了一些基本的路由和填充的形式和执行行动,它基本上什么都不做。我最后一次检查多数(所有)条纹标签基本上都是用很少或根本没有额外的相当于html标记fascades。这就是说,JSF并给予更多的,但如果你想要的是不是停留在2000年,一个真正的技术 - 考虑GWT