logotype

Get Started

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.

Ecosystem

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.

Most of the UI component libraries focus on providing rich UI components, and "rich" often involves Ajax. JSF 2.0 provides a common JavaScript API that UI components can use to help promote interoperability.

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 production

Want to see examples of JSF in Action?

Key Links

The future of JSF

How 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).