JavaServer™ Faces (JSF) is the standard component-oriented user interface (UI) framework for the Java EE platform. In terms which may sound more familiar, it's a Java-based web framework.
JSF is included in the Java EE platform, so you can create applications that use JSF without adding any extra libraries in your project. JSF works equally as well as a standalone web framework, able to hook into bean containers such as Spring. How you use JSF is up to you.
To fastest way to get started with JSF is to create a project using a Maven archetype. Instructions are provided on the Get Started page.
Beyond just a web framework, JSF offers an ecosystem of portable UI component libraries and extensions. This means you can take a UI component from a library, such as a tree or scrollable table, and use it on any JSF implementation.
You can start your search for UI components in the following places:
specification. JSF is designed to be very extensible, so what typically happens is that another project will come along (see Libraries and Extensions) that builds extra functionality on top of the specification. The expert group (EG) reviews these add-ons and incorporates commonly needed features back into the specification.|
Be sure to vote on proposed changes or submit your own!
What's important is that enhancements to JSF are proven and contributed by the community. That way, the specification is solid, reliable and useful. That's the goal, anyway.
Here are some of the improvements in the pipeline.
The second function of JSF is to respond to user-generated events in the page by invoking server-side listeners, followed by the generation of another user interface (e.g., web page) or an update to the user interface already displayed (possibly through Ajax). In this regard, JSF is said to be an event-driven web framework.
It's important to mention that JSF is part of the standard Java EE platform, which means it's built-in to any compliant Java EE application server, such as Oracle's WebLogic, GlassFish Open Source Edition, or JBoss AS. But it can also be used as a standalone library in servlet containers such as Tomcat and Jetty.
Of course, there's much more to JSF than what's described here. You can read more about JSF in the specification document (choose "for evaluation") or the myriad of resources that have been published about it, ranging from books, to articles, to blog entries. The purpose of this page is to make you more familiar with the JSF framework itself: how it is developed, where it lives, and what it has to do with a specification. Basically, what sets it apart from other web frameworks.