In 2001, the original
Java Specification Request (JSR) for the technology that ultimately became JavaServer Faces proposed developing a package with the name javax.servlet.ui In June 2001,
JavaWorld would report on Amy Fowler's team's design of "the JavaServer Faces API" (also known as "Moonwalk") as "an application framework for creating Web-based user interfaces".
Developments Facelets (which was designed specifically for Java Server Faces) was adopted as the official view technology for JSF 2.0. This eliminates the life-cycle conflicts that existed with JSP, forcing workarounds by Java developers. The new JSF developments also provide wide accessibility to
Java annotations such as @ManagedBean, @ManagedProperty and @FacesComponent that removes the need for faces-config.xml, in all cases except framework extension. Navigation is also simplified, removing the need for faces-config.xml navigation cases. Page transitions can be invoked simply by passing the name of the desired View or Facelet. The addition of Partial State Saving and
Document Object Model (DOM) updates are part of the built-in standardized
AJAX support. The latest JSF release has built-in support for handling resources like images, CSS and Javascript, allowing artifacts to be included with component libraries, separated into JAR files, or simply co-located into a consistent place within the Web application. This includes logical naming and versioning of resources. JSF 2.0 also includes a number of other changes like adding support for events, separate development, staging, and production modes, similar to RAILS_ENV in
Ruby on Rails, and significantly expanding the standard set of components.
Update history • JSF 4.1 (2025-07-01) – Jakarta EE 11– Aligned Update: Removes remaining SecurityManager references, improves CDI alignment, modernizes APIs with missing generics, adds UUIDConverter and flow injection support, enhances lifecycle events for built-in scopes, and includes multiple spec clarifications and small functional enhancements. • JSF 4.0 (2022-05-15) Major features: Deleted some deprecated things (native managed beans, native EL references), no extended view by default, added ClientWindowScoped • JSF 3.0.0 (2020-10-28) Package name changed from Javax to Jakarta. • JSF 2.3 (2019-09-10) The first release of the Jakarta Server Pages API for Jakarta EE.Neither the API nor the behavior has changed. • JSF 2.3 (2017-03-28) – Major features: search Expressions, extensionless URLs, bean validation for complete classes, push communication using
WebSocket, enhanced integration with CDI. • JSF 2.2 (2013-05-21) – Introduced new concepts like stateless views, page flow and the ability to create portable resource contracts. • JSF 2.1 (2010-11-22) – Maintenance release 2 of JSF 2.0. Only a very minor number of specification changes. • JSF 2.0 (2009-07-01) – Major release for ease of use, enhanced functionality, and performance. Coincides with
Java EE 6. • JSF 1.2 (2006-05-11) – Many improvements to core systems and APIs. Coincides with
Java EE 5. Initial adoption into Java EE. • JSF 1.1 (2004-05-27) – Bug-fix release. No specification changes. • JSF 1.0 (2004-03-11) – Initial specification released. == How it works ==