JSF 2.0(Facelets)和Struts

时间:2010-08-11 07:44:51

标签: jsf java-ee struts2 facelets jsf-2

我是Java EE 6的新手。我从JSF 2.0,Facelets,Managed Beans开始,非常喜欢它。这是JSP和servlet的一个很好的转换。这也让我很困惑。这可能是我缺乏知识,但我脑海里浮现出许多问题。

Facelets和Managed bean是JSP和Servlet的直接替代品。 (这里的工作要求仍然集中在JSP和Servlets上,市场/全球趋势将朝着Facelets或JSP的需求发展)

如何将Struts 2.0,Hibernate和Spring与Java EE 6集成。我已经在JSP中看到了很多关于这些技术的教程和工作示例,但是没有使用Facelets。

2 个答案:

答案 0 :(得分:4)

我的个人观点:

  1. JSF建立在JSP / Servlet之上 - 它不是真正的替代品,而是更高层次的抽象。
  2. Hibernate和Spring中的想法已经以某种方式集成在JPACDI下。
  3. JSP / Servlet的基础知识仍然有用,不需要的是JSTL的知识。
  4. 也就是说,Web框架有两大类:基于组件基于操作。 JSF是基于组件的,每个组件都负责自己的渲染和回调。 Struts是基于操作的,控制器明确地转发到视图。两者都可以被视为MVC,但这两种方法的差异很大。还有其他两种类型的框架(wicket,play等)

    哪种方法最好取决于品味和意见。

答案 1 :(得分:1)

Struts 1是一个在JSP / servlet应用程序上添加额外结构的框架。我会使用Struts而不是原始JSP进行开发,事实上,许多在Struts之前使用JSP的开发人员开发了自己的等效框架。

JSF实际上是Struts 1的标准化等价物,它的开发受到Struts创建者的严重影响。因此,JSF或多或少是Struts的直接替代品,原则上应该得到Java EE App Server供应商的广泛支持。 JSF的采用并不统一,有热心的用户,以及坚持使用Struts 1的人。我没有统计数据告诉你哪种技术被广泛使用。

Struts和JSF以及Model / View / Controller框架都没有解决如何实现Model的问题 - 特别是他们没有说明持久性,因此除了Struts / JSF之外你还需要Hibernate和JPA进来了。

据我所知,新兴趋势是使用Dojo或JQuery构建UI,使用REST服务,看起来Struts 2正试图解决这个问题域,浏览器中有丰富的小部件。这很有趣,值得研究。就我个人而言,我没有使用Struts 2,也没有专业地遇到它,可能是因为我正在使用主要用于Dojo和iWidgets的产品。我打算给Struts 2一些关注。