JSF implementations and component libraries [closed]
Asked Answered
jsf
A

2

49

I have just started using JSF and I have three questions related to JSF implementations and component libraries.

  1. What is the difference between JSF Implementations and Component Libraries?

  2. What are the various JSF implementations (like Eclipse Mojarra and Apache MyFaces) that are available and what is the difference between each one of them?

  3. What are the various JSF component libraries (like PrimeFaces, ICEfaces and RichFaces) that are available and what is the difference between each one of them?

Any relevant links giving the exact information on this would also be helpful.

Arnhem answered 30/1, 2010 at 10:18 Comment(1)
T
101

What is the difference between JSF Implementations and Component Libraries?

Jakarta Faces implementations implement the Jakarta Faces Specification which in turn is part of Jakarta EE (formerly known as Java EE). They contain at least the standard components to display any of the available basic ("plain vanilla") HTML elements. In other words, the <ui:xxx>, <h:xxx>, <f:xxx> tags are provided by the Jakarta Faces implementation.

Jakarta Faces component libraries just add that extra on top of the basic implementation, often with more skinnability, ajaxability, enhanceability, etcetera, so that you can just program it with a single component instead of a bunch of components or custom components, eventually along with a bunch of related JS/CSS code. They provide tags in their own namespace, such as PrimeFaces with <p:xxx> tags.

See also:


What are the various JSF implementations that are available and what is the difference between each one of them?

There are so far two (major) Jakarta Faces implementations, namely Eclipse Mojarra and Apache MyFaces. There's technically not much difference as they both simply have to adhere the Jakarta Faces Specification. Rather look at robustness, performance, availability of documentation, type of license, level of support, grade of maintenance (speed of enhancements, bugfixes, releasing, etc), etcetera.

See also:


What are the various JSF component libraries that are available and what is the difference between each one of them?

There are lot of them, I'll limit myself to the most used / well known libraries. If you want more skinning capabilities, look at PrimeFaces (demo), ICEfaces (demo) or BootsFaces (demo). Previously there was also RichFaces, but this is is EOL since 2016. If you want more ajaxical capabilities (other than what standard Jakarta Faces already provides), look at PrimeFaces, ICEfaces or BabbageFaces. If you want more specialized/enhanced components, look at PrimeFaces, ICEFaces, PrimeFaces Extensions (demo) or Tobago (demo). The difference is mainly to be found in the available set of components and the degree of customizability.

Further there are also Faces utility libraries. You'll probably recognize yourself reinventing/rewriting some FacesUtil, JSFUtils, etc classes everytime and/or custom tags/components to solve typical and recurring Jakarta Faces-specific problems. OmniFaces (demo) and DeltaSpike provide a reuseable standard library of Faces utilities which can be used in combination with any Jakarta Faces implementation and component library.

Tucker answered 30/1, 2010 at 17:40 Comment(3)
@Avinash If you like the answer you could/should "accept it", giving points to its authorSiusan
Don't forget to disclose your relation with OmniFaces ;)Cicisbeo
@Stephan: already in my user profile.Tucker
D
3

An implementation is something which implements the JSF specification. A component library is something which adds extra functionality (normally extra UI widgets) to the base specification.

I assume the main difference is standards compliance. As far as I am aware Glassfish is the only application server to fully support the new JSF standard released as part of Java EE 6.

Sorry I'm not sure about the last question.

Deputize answered 30/1, 2010 at 10:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.