ADF Faces Rich Client Components – Marrying JSF and AJAX together

AJAX allows for Rich Client Applications on top of standard HTML based Internet technologies. Programming AJAX can be messy and complex. JavaScript libraries like DOJO and BackBase have improved things a lot.

ADF Faces aka Apache MyFaces Trinidad currently has quite a bit of essential AJAX functionality embedded. This provides a much better contained, server side driven but still rich user experiences (see for example: The (AJA)X Files – On the built-in AJAX facilities of ADF Faces for zero-code Rich User Experience).

However, Rich Client applications can go far beyond what ADF Faces can do today. And that is where the ADF Faces Rich Client components come in. There just another set of ADF Faces – i.e. standard JSF API based – components that can be manipulated in IDEs like any old JSF UI Component. But they provide true AJAX (XmlHttpRequest object based) functionality, that is completely controlled from the server: no JavaScript programming is required.


I have just returned from a presentation by Frank Nimphius from the Oracle ADF Product Management group. It was a very good presentation, with excellent pace and great graphics, all the way from low level AJAX and JSF Overview to a demonstration of these new components.

He demonstrated a RichTable component, that shows a dynamic data grid that allows us to – and this is all done Client Side – move the columns around (drag & drop), resize the columns, scroll the table in a horizontal direction with the rest of the page fixed (Designer fans will recognize the spreadtable) and even one or more columns pinned while the others are scrolled around, as well as scroll the table in a vertical direction, dynamically loading additional records from the server!

Then he showed drag & drop from elements in this table to a Shopping Cart. The table component was contained within one tab of an accordion widget and other tabs could very rapidly be accessed as well.

These are very cool components and once released as part of the ADF Faces/Apache MyFaces Trinidad component set for JSF may very well eliminate the need for using separate libraries such as DOJO.

Frank furthermore explained a little about the architecture of these rich client components:

Client Side:

  • Data Cache
  • Abstract Component Model
  • DHTML Renderering
  • XMLHtppRequest object communication channel
  • JavaScript Client API for adding custom JavaScript functions

This means: rendering takes place on the client! So no rendering by the JSF RenderKit but instead by the UI Components client side counterpart using DHTML based on the XML payload. The developer is completely shielded from the XMLHttpRequest nitty gritty details.

Server Side:

  • JSP (tag) Syntax for specifying the Rich Client components (same as normal JSF UI Components)
  • full JSF Lifecycle integration

Note: Frank’s demo was with JDeveloper 11 (or JDeveloper Fusion as the title bar read).  He would not comment on any timelines, but rumours have it that late this Summer a first Early Access release may be made available on OTN, with at least the RichTable component in it.

Frank made it clear that the ADF Faces Rich Client components will also be donated to the Apache MyFaces Trinidad open source project. Oracle wants to make JSF a success and hopes to contribute towards that end by making this set available. ADF Faces will continue to exist as an Oracle brand too, part of the Oracle Fusion technology stack.


  1. Samba Siva Rao January 8, 2007
  2. Lucas Jellema June 27, 2006
  3. Lucas Jellema June 26, 2006