Practical RichFaces Book 2nd Edition Is Now Available

Practical RichFaces

I’m very happy to announce that Practical RichFaces book (Apress) is now available. It’s a second edition (the first edition is here). This time around I wrote the book with Ilya Shaikovsky (Twitter, JBoss blog, blog) who provided tremendous amount of help and support. Ilya has been on the RichFaces development team since inception, knows the in and outs of the framework and has been RichFaces evangelist for many years.

This book is entirely based on the new and improved JSF 2 and covers the new and greatly improved RichFaces 4. We cover all the most important concepts, features, tags, and components available in RichFaces that you need to know—all in one place. While the book doesn’t try to cover every single attribute for every single component, that’s not really necessary. However, with the solid understanding of core concepts, features, and tags that you will get from this book, we guarantee you will be able to use any RichFaces component.  

The book is for anyone with a basic knowledge of JSF who wants to learn how to build Ajax-based applications with RichFaces. If you are completely new to JSF, we recommend picking up a book on JSF 2. Even if you have been using RichFaces 4 (or RichFaces 3), this book will fill in many of the gaps. We are sure you will say at least once in the course of reading this book, “I didn’t know that was possible with RichFaces!” or “I didn’t know I could do that!” 

There are two people to whom I want to extend a very special thank you. They don’t always get a lot of recognition for their work, however, without their contributions, RichFaces wouldn’t be what it is today.

I want to extend a special thank you to Alexander Smirnov, the original creator of RichFaces for his technical review and for always being willing to answer any RichFaces questions. His “small personal” project in 2005 became the most popular JSF framework today.

I want to extend a very special thank you to Nick Belaevski for his technical review and, more importantly, for always being ready to help with any RichFaces questions and provide advice. Thank you for your tremendous contribution to RichFaces.

Table of Contents:

  1. The Basics
  2. Getting Started
  3. a4j:* Tags, Features and Concepts
  4. Getting Started with Rich Components
  5. Rich Input and Select Components
  6. Rich Panel and Output Components
  7. Rich Data Iteration Components
  8. Rich Menu Components
  9. Rich Tree Components
  10. Rich Drag-and-Drop Components
  11. Rich Validation
  12. Rich Components JavaScript API, Client Functions, and Using jQuery
  13. Skins
  14. RichFaces CDK: Building Custom Components

Published by

14 responses to “Practical RichFaces Book 2nd Edition Is Now Available”

  1. Hey! thanks Max, the first edition was wonderful…looking forward to an insightful read in this second edition.

    Will also like to know if using the JSFunction, can i pass an EL expression as argument to a normal javascript function?

    e.g onselect=doSomethingFunction(‘#{someBean.someValue}’) or onselect=doSomethingFunction(#{someBean.someValue})…now i realised none of these seems to work…is there a work around

  2. It works at least for simple String parameters there

    And as I remember I checked EL’s some time ago with the same success. Need to check with latest code to find any problems if them appeared.

  3. @Paa: do you want to pass the actual EL expression as string or the value of EL expression (after evaluation)?

  4. Hi,

    I am learning Richfaces 4 right now.
    where can I buy the ebook edition?


    1. @mystic: there is a link in the post to the book’s page on You may purchase the ebook there.

  5. Hello,
    Just bought the bookonline but could not find its source code. Do you have a link that I can use to get it?


  6. I read your book (Practical Richface 2) long time back… one of your chapter 6 example is to opening the Popup Panel from Within a Table. I follow your example and based on richfaces showcase to create similar page which will only show the record after user click on ‘search’ button. Popup work on my local machine but when I upload to GAE, popup not appear.

    I log a forum discussion but not respond.if you have free time please help have a look. Thanks a lot
    Here the url:

    1. Check if there are any JavaScritp errors in the console.

      1. Hi Max

        No error on server log. Only info log: – – [31/Jan/2013:20:56:24 -0800] “POST /public/test/testPopup4.jsf HTTP/1.1” 200 3814 “” “Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)” “” ms=96 cpu_ms=172 cpm_usd=0.000426 instance=00c61b117c05a1fef55f15f19f7999536b8baeb2

        And client browser also didn’t indicate any javascript error.

        Can this problem cause by dynamic data display in datatable via ? What I don’t understand is why my local gae (version 1.7.2) working fine and problem only happen after upload online.

  7. Check please FireBug plugin for Firefox. Pay attention to Net tab which could show you if any JS resources was failed to be loaded and Console tab which is able to show some client errors which sometimes are not appears in browser status bar.

    1. Hi Max and llya

      After update to richfaces 4.3.0 final, problem still can’t solve. That is no error from firebug. I copy the contain from firebug’s ‘html’ tab and ‘script’ tab. As this forum can’t post attachment so please refer to the message I post to:

      Please help. Thanks

      1. One obvious diff from local execution and the one deployed to GAE is the respond header:

        If this problem not able to solve, the work around is to split the search panel and result to 2 diff jsf pages…

        1. Solved after upgrade JSF api and implementation jar from 2.0 to 2.1

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.