JSF vs Stripes,哪个最好?

时间:2010-04-15 14:02:21

标签: java jsf web-frameworks stripes

哪个最好,或者换句话说,最简单易用? Stripes或JSF。

虽然我没有在愤怒中使用这两者,但我需要评估在开始新项目和转换现有Struts项目时最佳选择是什么。

我担心JSF不会像我想的那样渲染,但其他经历是什么? 似乎条纹更直接,我在这个假设中是否正确?

8 个答案:

答案 0 :(得分:14)

  

哪种最好,或者换句话说,最容易使用? Stripes或JSF。

哪个最好?好吧,Stripes和JSF是不同的。前者是基于动作的框架(如Struts),后者是基于组件的(如Wicket)。因此,答案将取决于您对基于行动的流程与基于组件的层次结构的经验和知识,并且两者都有其优点和缺点。哪个最简单?条纹,毫无疑问。

我喜欢条纹:

  • 它简单易行,即学习曲线较低。
  • 我喜欢它的配置方法约定。
  • 它很轻。
  • 它有详细记录(由于其简单性,您不需要大量文档)。
  • 它有一个小的反应社区(您将在mailing lists上获得答案)。

如果两者都是新手,我会选择Stripes。如果您想学习基于组件的框架,我认为从Wicket开始更容易(另请参阅Gavin King在How to start learning Java EE 6中所说的内容)。

答案 1 :(得分:3)

JSF没有良好的媒体报道,不良声誉是不幸的(Sun Microsystems已经错过了一次机会)。但是,自从提出问题以来,已经发生了很多变化 - 新的JSF 2.0版本已经发布。

那么JSF 1.X出了什么问题,与Stripes,Spring MVC或Wicket,Play,Click等相比,是什么让它变得如此有用呢?

  1. 仅支持POST请求,这会导致性能问题(GET请求可以有效缓存),难以实现可收藏的URL等等
  2. JSF 1.X基于JSP页面,它不适合处理更复杂的JSF页面生命周期
  3. 创建组件既困难又麻烦。
  4. 定义导航规则远非灵活且非常冗长
  5. 强制性XML配置
  6. 没有干净的资源管理方法
  7. 好消息是新JSF版本解决了所有这些缺点。

    1. 同样支持GET和POST请求。
    2. 可以通过注释完成配置(我们可以坚持使用XML,这是更好的解决方案),导航规则定义得到简化,我们甚至可以使用约定优于配置方法。
    3. 创建组件很容易。
    4. 有一些新的非常有用的组件范围:视图范围和闪存范围(类似于Ruby on Rails中已知的),使用户能够轻松处理更复杂的流程。
    5. 有标准的资源管理方法和更好的错误处理设施
    6. 我们可以定义项目阶段,以便在各种环境(测试,生产等)中更轻松地处理项目。
    7. 基于XHTML的Facelets取代了JSP更好的视图定义替代
    8. 内置AJAX请求支持
    9. JSF是Java EE标准的一部分,这意味着如果无聊的开发人员决定转向下一个闪亮且更时尚的框架,他们不会在一夜之间消失。
    10. 最后一个巨大的JSF 2.X优势:精心设计,外观精美,性能良好的即用型组件(RichFaces,PrimeFaces,ICEFaces)。这些库提供了数百个通常用于WWW页面的组件,这些组件可用而无需编写单行JavaScript或CSS。这是巨大的生产力提升。

      但是,与基于行为的框架(如Stripes)相比,JSF可能会遇到性能问题,这些框架更接近HTTP请求,而不构建组件模型(使用更多内存,更多网络带宽)。

      但对于不一定非常高效的应用程序,JSF 2.0是一个非常好的理性选择。学习曲线不再那么陡峭,而且重用现有组件的能力使其真正具有吸引力。从这个角度来看,Stripes并不那么有吸引力。

      因此,例如,对于2000名员工使用的内部网企业应用程序,JSF 2.0将是不错的选择。

答案 2 :(得分:2)

最好的网络框架?像往常一样,这个问题导致了“依赖于”答案。

另一个问题:“最容易使用的框架”。更容易回答,那条纹。 JSF有一个臭名昭着的陡峭学习曲线。另一方面,条纹易于设置且易于学习。

Stripes框架就像Struts一样,但更好。对于example,它使用注释而不是XML配置文件。就像Struts框架一样,它是一个基于动作的框架,只是更优雅。这意味着它严格遵循HTTP事件处理的无状态特性。如果您希望在生成页面方面获得高性能和最大灵活性,那么这很好。

像JSF这样的框架不是基于行为的框架,而是基于组件的框架。这意味着它在HTTP和您的应用程序之间移动了一层抽象。该层使得编写JSF应用程序成为可能,就好像您正在编写Swing应用程序一样。因此,JSF基本上处理组件模型和无状态HTTP生命周期之间的范式不匹配。然而,这一抽象层将花费一些性能;它也会让你对生成的HTML有一点点控制。

答案 3 :(得分:1)

jsf使用得更多,所以如果发生任何奇怪的事情,你应该得到更好的支持。这是我使用它的充分理由。

答案 4 :(得分:1)

我会使用JSF。它被广泛使用,iceFaces是一个非常方便的基于JSF的应用程序包。

答案 5 :(得分:1)

JSF是Java EE 6+的一部分。这意味着它将在很长一段时间内可用并保持,这对我们很重要。

也可能出现不同的实现,允许您为给定目的选择最佳实现。

答案 6 :(得分:0)

Seam是用于开发JSF应用程序的不错的应用程序堆栈,不确定Stipes。

  • 转化
  • Nice ajax support
  • 丰富的组件
  • XML配置注释

如果你是JSF的新成员,我不喜欢JSF的一件事就是高度学习曲线。

答案 7 :(得分:0)

像Struts这样的条纹并不能为你的应用做很多事情。除了一些基本的路由和填充表单和执行操作,它基本上什么也没做。上次我检查了大多数(全部)条纹标签基本上都是等效的html标签,很少或没有额外的标签。这就是说JSF确实提供了更多但是如果你想要一种在2000年没有停留的真正技术 - 考虑GWT。