- Paperback: 264 pages
- Publisher: Apress; 1 edition (December 16, 2008)
- Language: English
- ISBN-10: 1430210559
- ISBN-13: 978-1430210559
- Product Dimensions: 7.5 x 0.6 x 9.2 inches
- Shipping Weight: 1 pounds (View shipping rates and policies)
- Average Customer Review: 3.5 out of 5 stars See all reviews (11 customer reviews)
- Amazon Best Sellers Rank: #3,671,200 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Practical RichFaces 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
Top 20 lists in Books
View the top 20 best sellers of all time, the most reviewed books of all time and some of our editors' favorite picks. Learn more
About the Author
Max Katz is a Senior Systems Engineer and Developer Advocate at Exadel. Max is a well-known speaker appearing at many conferences, webinars, and JUG meetings.
Max leads Exadel s RIA and mobile strategy. Part of this role is working as the Developer Advocate for Tiggr Mobile Apps Builder (gotiggr.com), a cloud-based application for building mobile Web and native apps for any device. In addition, Max leads Exadel s open source projects (exadel.org) such as Fiji, Flamingo, and JavaFX Plug-in for Eclipse.
Max has been involved with RichFaces since its inception, publishing numerous articles, providing consulting and training, and authoring the book Practical RichFaces (Apress, 2008). Max also co-authored the DZone RichFaces 3 Refcard and the DZone RichFaces 4 Refcard. You can find Max's writings about RIA and mobile technologies on his blog, mkblog.exadel.com, and you can find his thoughts about these topics and others on Twitter at @maxkatz.
Max holds a Bachelor of Science in Computer Science from the University of California, Davis and an MBA from Golden Gate University.
Browse award-winning titles. See more
If you are a seller for this product, would you like to suggest updates through seller support?
Top customer reviews
The book is very straightforward and an easy read with step by step instructions for the examples and setting up an environment. This is a good companion to Seam in Action.
This book is not too bad. Happily, there is not much attention given to explaining Ajax or JSF/JSTL which has already been well addressed by other books. Also (a plus) it doesn't bulk up the page count by including the RichFaces documentation.
As other reviewers have mentioned, this book supplies a fair amount of missing detail. Good as far as it goes, but IMO it doesn't go far enough and this is why I only gave 4 stars.
File upload only recieved a few lines in the book, which is a surprise. I also thought the list components could have used more attention w/converters.
If you code using RichFaces it is helpful to skim this book. Hopefully the next edition will have more examples.
If you have ever perused the RichFaces documentation, you'll agree that it leaves out the bigger picture of how RichFaces works, in particular the underlying Ajax4jsf mechanism (i.e., the behavior provided by <a4j:support>). I can attest to the observation the author states in the introduction that a lot of developers are using the tags and attributes from RichFaces without a clear understanding of their purpose and, as such, only arrive at a working application through trial and error. After reading Practice RichFaces, and keeping it close at hand, you can finally put those painstaking steps aside and know what you are doing from the start.
The author then sets the record straight about the origins of RichFaces and its relationship with Ajax4jsf. You learn that there is a clear distinction between the tags in the a4j: and rich: namespaces. Specifically, the a4j: tags provide page-level Ajax support whereas the rich: tags provide component-level Ajax support. As you learn about both tag sets, you begin to appreciate how easily you can add Ajax and partial page updates to your application using RichFaces. You can practically feel yourself maturing as a developer and eager to start adding more sophisticated user interfaces that give your application a desktop feel.
If you are seeking answers to specific questions you have about certain Ajax4jsf tags, I can assure you that you will find them in this book. Let me cite a couple of examples. Early on in the book, the author provides an explanation as to why content that was not rendered on an initial request cannot be rendered during a partial page update without a placeholder. This is a common problem that comes up as soon as the developer tries to use Ajax for input field validation. There is good coverage of the ajaxKeys attribute for updating individual rows in a UIData component, a very compelling feature of RichFaces in terms of performance. You also learn how to use the <a4j:include> tag to create a wizard in a single-page application while still being able to leverage the JSF navigation rules.
Although I have been using RichFaces for several years, I learned many things about RichFaces and even corrected some mistaken assumptions I had.
You are constantly reminded in the book that skinning is covered in chapter 11, almost to the point where you want to just skip to the chapter and get it over with. The coverage of skinning is pretty good, though a thorough explanation of the XCSS files and how they tie into the theme is sorely missed. There are other important areas of RichFaces that didn't make it into this book. There is no coverage of the drag and drop components nor, as mentioned earlier, the resource delivery framework. The section on developing a custom tree is fairly thin and, coming from experience, it turns out to be a lot more difficult than it appears. So while this book serves as a vital resource for understanding the fundamentals of how RichFaces works, there is still room for a book further along in the progression.
Despite providing a clear picture of how RichFaces works, the book has a number typos, broken grammar, incorrect code formatting, and mixed up code and diagram references, sadly a shortcoming of the RichFaces developer documentation as well. Likely you'll be able to read around the mistakes, though, and understand what was intended. I just wish more care had been taken to polish the manuscript and the code listings.
As well as the author does explaining the concepts, tags, and tag attributes in RichFaces, the fact remains that RichFaces has several bizarre tag and attribute names that cause confusion for the developer. One example is the <a4j:keepAlive> tag. Keep-Alive is an HTTP header that specifies to the browser how to control the connection. But the tag has nothing to do with this header. This tag stores the value resolved by a value expression in the UI component tree so that it's available on postback. This is just one example of how RichFaces is a bit rough around the edges. I'm hopeful that RichFaces 4 will align the excellent concepts in RichFaces under a better naming strategy. Of course, given that the names are not always intuitive, it makes this book an even more critical resource to you as a developer.
Looking beyond these technicalities aside, it's my recommendation that if you are using RichFaces, you should definitely take the opportunity to read this book.
However, Max does an excellent job of providing detailed and easy-to-understand examples with code and screen-shots for most (if not all?) of the a4j: and rich: components.
In fact, one excellent idea I found in the book I have recently integrated into a project at work: using <rich:modalPanel> with <a4j:status> so that whenever a AJAX request fires, a modalPanel displays and prevents the user from executing any other AJAX request until the AJAX response is complete. Looks pretty snazzy too!
My complaints are the following:
1) there is no coverage of upcoming features/components (e.g. <a4j:queue>)
2) the booking is not long enough for the price at only 245 pages including index
3) there is no references/bibliography
4) there is only cursory coverage of the JSF lifecycle
5) Facelets is not covered in the introduction
6) no coverage of <rich:extendedDataTable>
7) I would have liked a chapter on creating your own custom Richfaces component (a small project basically)
Overall, I did learn quite a bit about Richfaces I didn't know before (I found chapter 4: controlling traffic with queues particularly useful as well as using bypassUpdates="true" for live validation as a performance optimization) and would recommend it highly as a desk reference in addition to the Richfaces Developer Guide available online @ jboss.org.
Most recent customer reviews
I have been working on a RichFaces for about a couple of months now, and I was really surprised how well...Read more