java - 阐明对 JSF 2.0 的理解

标签 java web-applications jsf-2

在深入研究 JSF 2.0 之前,我想通过寻找以下问题的答案来阐明我对 JSF 2.0 的理解:

  1. 引用实现MyFaces有什么区别?

  2. 带有引用实现或 MyFaces 的 jsf 2.0 可以部署在任何 servlet 上吗 容器,即 tomcat/jetty,还是必须仅部署在 Java EE 兼容容器上?

  3. 创建自定义标签有多难?例如分页链接标记,类似于 Grails 中可用的标记?

  4. 是否可以将 *Faces(即 PrimeFaces、RichFaces 等)与 jquery 或 yui 等 javascript 库一起使用?这样做会产生任何冲突吗?

最佳答案

1: What are the differences between the reference implementation and MyFaces?

它们由不同的团队开发。因为两者都应该遵守 JSF 2.0 spec ,关于 JSF 2.0 规范中指定的基本功能,应该没有差异。但是,对于暴露的和已修复的错误,可能存在差异。我个人的偏好是 Mojarra(引用实现)。

2: Can jsf 2.0 with either reference implementation or MyFaces be deployed on any servlet container, i.e. tomcat/jetty, or must it be deployed only on a Java EE compliant container?

是的。 JSF 2.0 只需要最少的 Servlet 2.5 API。因此,任何 Servlet 2.5 兼容容器甚至 Java EE 5 应用程序服务器就足够了。每当您想使用 JSF 2.0 时,您可能只需要在 Java EE 5 应用程序服务器中禁用内置的 JSF 1.2 API。或者,更好的是,只使用 Java EE 6 应用程序服务器(Glassfish 3、JBoss AS 6 等),因为它已经随 JSF 2.0 一起提供。

3: How difficult is it to create custom tags? For example a pagination link tag, similar to what is available in Grails?

当使用 Facelets 作为 View 技术(在 JSF 2.0 中默认使用)时,使用模板或复合组件应该相对简单。因为它基本上只是 XML,所以不需要 Java 代码。

4: Is it possible to use *Faces (i.e. PrimeFaces, RichFaces, etc) with a javascript library like jquery or yui? Are any conflicts created by doing so?

此外,PrimeFaces 和 RichFaces 都附带了内置的 jQuery (UI),PrimeFaces 还附带了 YUI。这也是他们获得精美外观和/或特殊效果的地方。至于与自己的 jQuery 脚本冲突,只需使用 jQuery.noConflict()压制它。


当您准备好深入学习 JSF 2.0 时,我可以推荐以下教程:


根据评论更新:

However, could you elaborate on why your personal preference is Mojarra (the reference implementation)?

因为我是 Mojarra 的狂热用户。没错,这是主观的:)

客观地说,在JSF RI 1.1时代,MyFaces是更好的选择。更少的错误和更好的性能。然而,自从新的 JSF RI 开发团队在 JSF RI 1.2 期间,改进/修复了很多。截至目前,还没有技术上的理由让我们更喜欢其中一个。它是暴露和修复错误(维护/支持)的最高程度。

相关问题:

关于java - 阐明对 JSF 2.0 的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866832/

相关文章:

java.util.NoSuchElementException : No line found at java. util.Scanner.nextLine(Scanner.java:1585)

java - Apache Poi,如何获取链接的工作簿?

java - 单例类方法的并发调用

tomcat - 关于 Web 应用程序中的 robots.txt 文件

java - Tomcat 不扫描 JAR 中的 JAR

spring - Controller层可以直接调用Persistence层吗?

java - 如何在JSTL中为数组指定useBean标签

java - 低延迟大容量系统/应用程序的含义是什么?

java - @ViewScoped 托管 bean 中的 @EJB 导致 java.io.NotSerializableException

jsf - 无法在 JSF Facelet 中使用 VueJS 属性前缀