在我深入研究JSF 2.0之前,我想通过寻找以下答案来澄清我对JSF 2.0的理解:
参考实现和 MyFaces 之间有什么区别?
可以在任何servlet上部署带有参考实现或MyFaces的jsf 2.0 容器,即tomcat / jetty,还是只能部署在符合Java EE的容器上?
创建自定义标签有多难?例如,分页链接标记,类似于Grails中提供的标签?
是否可以将* Faces(即PrimeFaces,RichFaces等)与jquery或yui等javascript库一起使用?这样做会产生任何冲突吗?
答案 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次,很多都得到了改进/修复。截至目前,没有技术理由偏爱这一个。暴露和修复的错误程度(维护/支持)最高。