澄清对JSF 2.0的理解

时间:2011-02-01 19:03:32

标签: java web-applications jsf-2

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

  1. 参考实现 MyFaces 之间有什么区别?

  2. 可以在任何servlet上部署带有参考实现或MyFaces的jsf 2.0 容器,即tomcat / jetty,还是只能部署在符合Java EE的容器上?

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

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

1 个答案:

答案 0 :(得分:2)

  

1:参考实现和MyFaces之间有什么区别?

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

  

2:带有参考实现或MyFaces的jsf 2.0可以部署在任何servlet容器上,即tomcat / jetty,还是只能部署在符合Java EE的容器上?

是。 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:创建自定义标签有多难?例如,一个分页链接标记,类似于Grails中可用的标记?

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

  

4:是否可以使用* Faces(即PrimeFaces,RichFaces等)和jquery或yui这样的javascript库?这样做会产生任何冲突吗?

更重要的是,PrimeFaces和RichFaces都内置了jQuery(UI)和PrimeFaces YUI。这也是他们看中他们的感觉和/或特效的地方。至于与自己的jQuery脚本的冲突,只需使用jQuery.noConflict()来抑制它。


当您准备好参加JSF 2.0时,我可以推荐以下教程:


根据评论

更新

  

但是,您能详细说明为什么您的个人偏好是 Mojarra (参考实施)吗?

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

客观地说,MyFaces在JSF RI 1.1期间是更好的选择。减少错误和更好的性能。但是,由于新的JSF RI开发团队在JSF RI期间1.2次,很多都得到了改进/修复。截至目前,没有技术理由偏爱这一个。暴露和修复的错误程度(维护/支持)最高。

相关问题: