JavaServer™ Faces (JSF) is a web application framework specification (JSR314, JSR252, JSR127) based around the model-view-controller pattern.
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).
MyFaces Core is a JavaServer™ Faces implementation. In few words, it allows you to run jsf applications, providing the functionality described by the JSF spec, and a couple of tweaks that can't be done without put them directly on the JSF implementation.
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.
MyFaces Core comes in different versions:
- 1.1.x for JSF 1.1 (JSR-127)
- 1.2.x for JSF 1.2 (JSR-252)
- 2.0.x for JSF 2.0 (JSR-314)
- 2.1.x for JSF 2.1 (JSR-314)
Here you can find additional information about how to setup and work with MyFaces Core JSF implementation.