views:

939

answers:

4

I am currently using the JBoss RichFaces JSF component library for the project I am working on. It works quite well in general, especially the AJAX support provided by ajax4jsf (A4J), but I find the usually very inflexible table-markup used for almost every component and all this "skin" stuff of richfaces quite annoying. It would be nice if there were some components which just provided the functionality and only minimal markup/style. Originally I had planned to use ICEfaces, but that didn't work too well either and also brings a lot of predefined styles with it, so for now RichFaces seems to be the best option.

Now I thought it would be nice to develop a clean tag library which provides some useful components found in RichFaces, ICEfaces or Tomahawk (not all of course!), which don't use any predefined style and generate markup which can be styled easily with CSS.

I wanted to use the ajax4jsf libray for AJAX support, because I think it works quite nice and integrates very seamless into standard JSF with facelets. But it seems that since it has moved over to JBoss, it isn't available as a standalone library anymore. You can only download the whole RichFaces package, which I don't want.

Is the ajax4jsf (A4J) project dead? If it is, what alternatives are there?

+3  A: 

You can find many alternatives here:

JSF AJAX Component Library Feature Matrix

GvS
Thank you, I am looking into it...
Simon Lehmann
+1 useful URL..
Hendrik
A: 

If you are feeling adventurous, take a look at JSF 2. It features a shift in view technologies from JSP to Facelets and built in AJAX support. David Geary has been running a series of JSF 2 fu articles on developerWorks (though you'll have to wait for part 3 for the AJAX stuff). Ed Burns and Jim Driscoll have been demoing various features during the development of the new API, so you might want to check out their blogs too.

McDowell
I am eagerly waiting for JSF 2 to get ready for production, it would solve so many problems we currently have to work around...
Simon Lehmann
+1  A: 

If you read the ajax4jsf forum you'll see that it's been merged with Richfaces.

You don't have to use the Richfaces components on your page, so do you have an issue with having the JARs in your project?

I agree that many JSF components (not just Richfaces) are based on tables (eg. h:selectManyCheckbox). Don't forget that it's easy to write a new renderer for many of these. I've done this for the h:selectManyCheckbox so that the checkboxes are rendered inside divs instead of a table. I would think that you should be able to do the same for Richfaces components...but if that's the case, then why use them?

You may find it easier/nicer using jQuery UI elements and tie them back to your Beans with a4j:jsFunction (or similar).

Damo
I knew that they somehow merged it, but thanks for the link to the official statement. As it seems, I can't use A4J in another library project, because I would always have to carry some RichFaces stuff with it. As you suggest, combining jQuery with a4j seems to offer the greatest flexibility, which is the reason why it would be nice to have a standalone A4J lib.
Simon Lehmann
it doesn't carry anything with it in terms of page weight - just jars in your WAR/EAR.Also if you want to hook up other javascript based UI frameworks easily, check out the REST support in Seam 2.1.2. Fantastic stuff.
Damo
A: 

Just a comment. I started using icefaces. I'm a web designer also and im very particular on look and feel of the icefaces components in relation to my web application. I was highly frustrated at the time it took me to override the look and feel of icefaces components using css. The components had a lot of nested table markup that annoyed me.

When i moved to richfaces. I discovered it was alot easier to override the look n feel because richfaces have an integrated system of overriding the look n feel in css. The css given to the components had similar and sensible class names that made it easier to predict and override.

Joseph Okharedia