It is really encouraging to see all of the great new JSF (JavaServer Faces) component libraries. Several new component libraries deal with Ajax - a perfect application of JSF, in my opinion. For one, there is a lot of JavaScript that needs to be abstracted away - such as making the actual Ajax call and making that call work in all browsers. On top of that, getting Ajax to work with JSF is no small chore either. So it is really quite fortunate that all these new libraries are coming out.

Ajax4jsf  is an excellent library for adding Ajax functionality to your pages. It doesn’t necessarily add many new JSF components, but it gives you the ability to make your current ones work with Ajax. We’ve used it to do things like: Use server-side validation without refreshing the page, edit text on the fly, and auto-save form inputs - just to name a few.

RCFaces (Rich Client Faces) is a set of visual (and a couple of non-visual) Ajax-enabled components. While the documentation is currently sparse and incomplete, it does look quite promising and I’ll be keeping my eye on it. They have a showcase of some of their components available here. One of the things that I immediately liked was how good the components look - especially compared to a lot of other JSF component libraries.

One of the things to keep in mind is that a lot of web applications aren’t entirely Ajax-based - I personally like having the option of ‘Ajaxifying’ certain parts of a page in an app, but allowing other parts to function like a regular web page. This means it is important for Ajax component libraries to play nicely with non-Ajax components, as well as libraries like Ajax4jsf.  I’m hoping over the next few weeks to be able to evaluate RCFaces and see how well it does play with Ajax4jsf, and also revisit ICEfaces to see how the two compare.