java - JSP 和 Facelets 之间有什么区别?

标签 java jsp facelets

<分区>

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

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

JSP 和 Facelets 有什么区别? Facelets 是否会取代 JSP,或者它只是一种与 JSF 一起工作得更好的技术(如果是后者,为什么)?如果它们不同,我应该什么时候使用它们中的每一个?

最佳答案

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

The term Facelets is used to refer to the JavaServerTM Faces View Definition Framework, which is a page declaration language that was developed for use with JavaServer Faces technology. As of JavaServer Faces 2.0, Facelets is a part of JavaServer Faces specification and also the preferred presentation technology for building JavaServer Faces based applications.

现在,JSP 是网络的标准 View 技术。但是当谈到采用 JSF 作为 Web 框架时,JSP 并不支持 JSF 2.0 中提供的所有功能。因此,需要一些标准的 View 技术来与 JSF 2.0 一起工作。所以,Facelets 就是这样。

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

关于java - JSP 和 Facelets 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2197139/

相关文章:

jsp - 来自 JSP 编译器的负时间

java - 支持 Bean 未获取 javascript 发送的值

AJAX 渲染属性不适用于渲染的 ="false"组件

java - 运行它但在 s :iterator tag 中没有显示

java - 在 spring 中使用 ajax 调用从 Controller 获取 map

jsf - 如何从外部 jar 中包含 xhtml

java - Java中是否可以通过反射访问私有(private)字段

java - 对通过 lambda 表达式调用的 Runnable.run 方法执行 @Before 和 @After 方面

java - 为什么我的应用程序终止?

java - spring security 不根据角色过滤对资源的访问