Skip to main content

Jakarta Server Faces 4.0 (under development)

Jakarta Server Faces defines an MVC framework for building user interfaces for web applications, including UI components, state management, event handing, input validation, page navigation, and support for internationalization and accessibility.

The goal of this release is to start addressing a major concern that Faces is dragging along too much weight. This will be done by removing deprecated things. We also intend to continue modernizing by moving more things to CDI. Next to these big ticket items, we plan to add a small amount of features and refine the API.

More specifically:

Removing deprecated things:

  • Removing JSP support as a VDL (deprecated since 2.0) - FACES #1546
  • Removing the native managed beans (deprecated since 2.3) - FACES #1547
  • Removing references to the native EL (deprecated since 1.2) - FACES #1548
  • Default “Fakes Faces 2.2”-mode (defaulting to the current version instead)
  • Rename “jsf” everywhere to “faces” FACES #1552

Continue re-basing on CDI:

  • CDI events
  • Internal artefacts as CDI beans
  • Additional artefacts injectable

Features

  • Extensionless views by default FACES #1508
  • New scope ClientWindowScoped FACES #1509
  • Allow redirect via Annotation on action FACES #1554
  • New lifecycle for REST/REST-like actions (for cases where view action with empty page is used now)
  • Simplified API for setting FacesMessages
  • First class support for creating views in Java
  • Stateless views as global option
  • Annotations for various things such as components (replaces/is alternative for bulky taglib registrations)

API enhancements:

  • StateHelper - Allow a Supplier as defaultValue
  • PhaseListener - default methods
  • Renderer - generic/parameterized
  • Remove duplicate SessionMap annotation
  • API to register custom behavior for a composite

New deprecations:

  • Full State Saving

The JDK version required will be aligned with Jakarta EE 10.

Ballots

Plan Review

The Specification Committee Ballot concluded successfully on 2021-05-04 with the following results.

Representative Representative for: Vote
Kenji Kazumura Fujitsu +1
Dan Bandera, Kevin Sutter IBM +1
Ed Bratt, Dmitry Kornilov Oracle +1
Andrew Pielage, Matt Gill Payara +1
Scott Stark, Mark Little Red Hat +1
David Blevins, Jean-Louis Monteiro Tomitribe no vote
Ivar Grimstad EE4J PMC +1
Marcelo Ancelmo, Martijn Verburg Participant Members +1
Werner Keil Committer Members +1
Dr. Jun Qian Enterprise Members +1
Total 9

The ballot was run in the jakarta.ee-spec mailing list

Back to the top