在JSF-2.0中使用技术JSP(而不是XHTML)有什么缺点吗?

时间:2012-04-29 22:58:12

标签: java jsp jsf jsf-2 facelets

我曾经使用JSP作为视图技术。但是使用JSF-2.0,开发人员可以使用Facelets作为他们的模板技术。但这是否是一个严重的问题?如果我将继续在JSF中使用JSP视图,我会失去任何东西吗?比这项技术更好吗? XHTML和JSP之间有什么根本区别吗?如果有人能回答我,我将非常感激!谢谢

3 个答案:

答案 0 :(得分:3)

新视图范围和Facelets的包含是JSF的主要改进以及支持ajax和注释。这项技术是JSF 2.0中非常重要和强大的特性。所以我不建议在没有必要的情况下忽略它。

不鼓励使用JSP,因为Facelets为开发用户界面提供了比传统JSP更清晰,更灵活的机制。由于几个基本原因,Facelets要好得多:

  • Facelets标签不需要在标签库描述符文件(TLD)中声明。
  • 标记中的属性是动态的,它们会自动映射到属性。这是JSP中没有的主要功能之一是页面。
  • 非常实用的页面模板功能。您可以定义一个模板,为所有具有自定义范围的视图页面定义通用布局。
  • JSF规范的JSP方面仍然停滞不前。所有涉及新标签的新功能(复合组件,ajax,系统事件等)都不会通过JSP公开。
  • 此外,Facelets的执行速度比JSP快。

通常,作为JSF 2.0中的视图技术的JSP被认为更麻烦且难以维护

答案 1 :(得分:1)

如果你使用JSF,你应该使用Facelets而不是JSP,因为JSP和JSF不能很好地匹配。主要问题是JSP世界对JSF life cycle一无所知。您可以阅读this article了解一些示例。 Facelets没有这些问题,因为它是专为匹配JSF而创建的。

答案 2 :(得分:-3)

xhtml和jsp之间没有选择。 JSP是一种服务器端模板机制,用于创建基于文本的响应以发送到浏览器。该文本响应可以是xhtml,html,json,xml或任何其他文本格式。所以你可以使用jsp创建xhtml - 你不要在它们之间做出选择。

仅仅因为你改变了扩展名并不意味着你做了不同的事情。你只是改变你所说的 - 没有特别的理由这样做,而且令人困惑。