Apache MyFaces

The Apache MyFaces project provides both an implementation of the JSF specification ("MyFaces Core"), and a set of add-on libraries that work on any implementation of the specification (including, of course, Apache MyFaces Core).

JSF supports the development of highly interactive applications where the system interacting with the user is separated from the system that contains the presentation logic; web-browser/web-server is one example. JSF has a "component-based" architecture, and therefore is more like "Swing for the web" than an HTML publishing framework. People familiar with Swing, Gnome, KDE, MFC, VisualBasic, Delphi etc should feel right at home developing JSF applications.

JSF is quite similar to the Tapestry framework as that is also a component-based framework. JSF can also fill the same "niche" as the well-known Struts framework, but has a rather different approach.

The Sun JavaServer Faces(tm) Page has information about the JSF-1.2 (and older JSF-1.1) specification. They also provide a useful Tutorial there. MyFaces Core provides a 100% compliant implementation of these specifications.

The Apache MyFaces family of projects includes the following libraries that can be used with any JSF implementation to add extra features and flexibility: