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.
Finding UI components
You can start your search for UI components in the following places:
- Ajax JSF Matrix - a comprehensive (but not official) matrix of rich component libraries
- JSF Central - features a product catalog of component libraries
JSF in productionWant to see examples of JSF in Action?
The future of JSFHow does JSF get improved?
JSF improves by improving the 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.
There were also some changes to the Unified EL in Java EE 6 that improved JSF indirectly. But we can do more! (The Unified EL is currently governed by JSR-245, which is the specification for JavaServer Pages (JSP) 2.1).