【问题标题】:What are the differences between JSP and Facelets? [duplicate]JSP 和 Facelets 有什么区别? [复制]
【发布时间】:2011-01-12 22:03:37
【问题描述】:

我刚开始阅读Java EE 6 Tutorial,我有点困惑!我知道 JavaServer Pages (JSP),甚至在我本科学习期间做过一些编码。但是现在,在本教程中,我没有看到任何关于 JSP 的内容。

相反,我阅读了 Facelets,一种新的视图定义框架(如本教程中所述)。我在 Internet 上进行了一些搜索以澄清 JSP 和 Facelets 之间的区别,我遇到了 this post 这对我有很大帮助(尤其是 BalusC's answer)。但是这些术语对我来说仍然有点不清楚。

JSP 和 Facelets 有什么区别? Facelets 会取代 JSP,还是只是一种与 JSF 配合得更好的技术(如果是后者,为什么)?如果它们不同,我应该什么时候使用它们?

【问题讨论】:

标签: java jsp facelets


【解决方案1】:

正如您在教程中所读到的,

Facelets 一词用于指代 JavaServerTM Faces 视图定义 框架,即页面声明 为使用而开发的语言 使用 JavaServer Faces 技术。作为 在 JavaServer Faces 2.0 中,Facelets 是一个 JavaServer Faces 规范的一部分 以及首选的演示文稿 构建JavaServer的技术 基于面孔的应用程序。

现在,JSP 是 Web 的标准视图技术。但是在采用 JSF 作为 Web 框架时,JSP 并不支持 JSF 2.0 中提供的所有特性。因此,需要一些标准视图技术来与 JSF 2.0 一起使用。所以,Facelets 就是这样。

如果您根本不使用 JSF,则不需要使用 Facelets。在这种情况下,您可以使用 JSP。或者很少有其他模板框架,例如 FreeMarker 和 Velocity。此外,一些 Web 框架定义了自己的标记,例如 Struts2。因此,如果您决定使用 Struts,那么使用 Struts 标记是最好的选择。

【讨论】:

  • 为了避免混淆和清晰的理解,我还是建议你学习JSP。之后,您将自动能够看到自己。 JSP 并没有过时,仍然在许多 Java Web 应用程序中用作视图技术。
  • 所以,如果我理解正确的话,Facelets 和 JSP(以及其他标记)都是将数据(通过使用 bean 或执行一些其他操作)放入网页的方法,对吧?您应该使用哪一个的选择完全取决于框架。我说的对吗?
  • 是的,有点。为什么这样?因为有很多框架没有引入任何自己的东西,并且满足于JSP,还有自己的taglib。所以,JSP 还是很有用的。 JSF 和类似框架的情况有些不同。 JSF 在风格上有所不同。它在组件方面做事。 Tapestry 是另一种,虽然不是很熟悉 Tapestry。
  • 非常感谢醋。我终于明白了! :) 尽管我没有看到所有这些大量 Java 框架的意义......!
  • IMO,在这些快速的 Web 应用程序框架(如 Django 和 Rails)之后,Java 社区开始考虑类似的易于开发的东西,并且有可能减少开发时间。所以我们最终有很多地狱。每个其他框架都是为了吸引特定类型的思想/开发人员。像 Wicket 更倾向于 Java 开发人员。 Tapestry 声称,很少有人对设计师友好。 Struts2 的出现是因为 Struts 臃肿。春天来了,让我们的生活更轻松。 Struts 是第一个 Java Web 框架,AFAIK。还有很多,选一个确实很难。
猜你喜欢
  • 2011-03-18
  • 2011-04-12
  • 2012-07-12
  • 2011-12-13
  • 2011-06-02
  • 1970-01-01
  • 2011-08-27
  • 2015-11-23
  • 2013-02-13
相关资源
最近更新 更多