JSF Mini Book – Tips, concepts and good practices

Avoiding the use of logic in the xhtml page

Usually the pages that the user access has some kind of restriction to some data through administrator or manager profiles; those restrictions are called “View Rules” and it will define which behavior the component will have like: to limit the information that the user can have access, show a message or block a button.

To the JSF components there is an option named rendered that is quite similar to the visible option of other languages components. Just set the “rendered=false” and the component will not be displayed to the user.

With JSF it is very easy to access a value of the ManagedBean; sometimes a developer might be tempted to do a code like this: rendered=#{personMB.total == 5}.It is easy to understand and to read; we know that the component will be rendered only if the total of persons is equal 5. Imagine now if this code is used in 15 more components and the if condition should change to: rendered=#{personMB.total == 6}. How hard would be to change this piece of code in 15 components, or even more?

It always a good practice to leave the View Rules in the ManagedBean. It is required just to create a method that returns a Boolean. The code below shows how to do it. To use the code below in the xhtm page just write it like: rendered=#{personMB.totalReached}.

public boolean isTotalReached(){
    return total == 6;
}

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

    and

    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

      Thanks

Leave a Comment