JSF Mini Book – Tips, concepts and good practices

Dot no mix JSF Implementations

We can find several JSF Implementations and several components that help us to develop JSF applications. Each implementation/component has its particular behavior. Some implementations that we can find are: Mojarra and MyFaces. Some components are: Primefaces, Icefaces and Richfaces.

A JSF implementation is a library with codes that works as described in JSF specification. They are independent, do not need of any other JSF library to work. A JSF component needs a JSF implementation to work correctly. In a JSF application it is possible to user Icefaces with MyFaces.

A JSF developer must be cautious when choosing which implementation to use and if there is the need of any other JSF component. A JSF component is a very useful resource with very good features. The developer must have in mind that several problems may happen when a mix of products (implementations and components) happens.

Often it is possible to find on internet problems when Primefaces and Richfaces components are mixed. A known problem that happened last year was the mixing of “p:tooltip” with a “rich:calendar”, the Primefaces component stopped working.

MyFaces is a JSF implementation that comes with several components that make easier to develop with JSF; if the component chosen is the Primefaces the creator of the Primefaces indicate to use it with Mojarra implementation. A developer must always think about the pros/cons of each implementation/component, study what each creator indicates and only after this study chose an implementation.

To finish this matter, the message below is displayed by the JBoss when more than one JSF implementation was found. By default the JBoss provides an JSF implementation and if the application does not provide any configuration do ignore the JBoss JSF implementation (you can see the configuration in the topic “Upgrading from JSF 1.2 to 2.0“), the JBoss will have problem to choose between which implementation to use: “WARN [JBossJSFConfigureListener] MyFaces JSF implementation found! This version of JBoss AS ships with the java.net implementation of JSF. There are known issues when mixing JSF implementations. This warning does not apply to MyFaces component libraries such as Tomahawk. However, myfaces-impl.jar and myfaces-api.jar should not be used without disabling the built-in JSF implementation. See the JBoss wiki for more details.

18 thoughts on “JSF Mini Book – Tips, concepts and good practices

  1. Really cool material! I agree with Tim. If this could be distributed in pdf format, you will become a little more famous. :) Thanks, good job!

  2. I’m not able to see this library applied in my program.
    Output is: Real Madrid, Champion!!! (No image and style)

    Please let me know what I’m missing.

  3. I was trying to learn Spring MVC for last 2 months, Every time i try to start, i get stuck somewhere. 2 Months passed, and i did not learn anything. I purchased two books for spring. Finally i quit Java web programming. One day I thought to give a try to JSF. and found some tutorials online, worked on them and I loved it. Your tutorials are going to help me a lot.
    Thank you so much.
    I would like to tell people here, don’t go near spring, It’s a piece of crap.

    • Arslan,

      Thanks for the feedback.

      My next post will be a full web application with Spring MVC.

      Maybe this application will help you understanding better the Spring, it is a good tool! =D

      See you later.

  4. With your code lines


    eclipse was giving error that:

    Multiple annotations found at this line:
    – Invalid location of text (“) in tag ().
    – Invalid location of text (=”) in tag ().
    – Element type “h:outputStylesheetlibrary” must be followed by either attribute specifications, “>”
    or “/>”.

    So I’ve corrected it by changing lines to

    But I think as you mentioned in case of versions of resources, it will automatically picks up latest version. but the code I’m using will not control the version. It looks like hard-coded.

    What you say about it?

    Moreover, You wrote:
    “To use a mapped library by the ResourceHandler let us create a folder named “index.xhtml” inside the folder “/WebContent”.”

    I think you have not created a folder name “index.xhtml” but you have created a file named “index.xhtml”. If I’m right then you need to correct it. :)

    • Hello Arslan, how are you?

      Unfortunately the xml are not displayed here. =/

      Could you send me an email with the code and the texts that you wrote?

      Thanks for your support and passing by.

      My email is contato (at] uaihebert (d0T) com


Leave a Comment