CDI alignment
JSF 2.2 starts CDI integration, provides built-in CDI compatible ViewScoped
and @FlowScoped
, and all CDI scopes are compatible with JSF.
In JSF 2.3, more CDI alignments are added.
A lots of JSF built-in facilities are exposed as CDI beans, and can be injected as general CDI beans.
In JSF 2.2, to get JSF facilities.
In JSF 2.3, you can inject them directly in your backing bean.
And all of these can be resolved via EL in facelets template.
There is a table listed all supported facilities in Arjan Tijms's blog entry, What's new in JSF 2.3? .
Artifact | EL name | Qualifier | Type |
Application | #{application} | - | java.lang.Object (javax.servlet.ServletContext) |
ApplicationMap | #{applicationScope} | @ApplicationMap | java.util.Map |
CompositeComponent | #{cc} | (Not injectable) | javax.faces.component.UIComponent |
Component | #{component} | (Not injectable) | javax.faces.component.UIComponent |
RequestCookieMap | #{cookie} | @RequestCookieMap | java.util.Map |
FacesContext | #{facesContext} | - | javax.faces.context.FacesContext |
Flash | #{flash} | - | javax.faces.context.Flash |
FlowMap | #{flowScope} | @FlowMap | java.util.Map |
HeaderMap | #{header} | @HeaderMap | java.util.Map |
HeaderValuesMap | #{headerValues} | @HeaderValuesMap | java.util.Map |
InitParameterMap | #{initParam} | @InitParameterMap | java.util.Map |
RequestParameterMap | #{param} | @RequestParameterMap | java.util.Map |
RequestParameterValuesMap | #{paramValues} | @RequestParameterValuesMap | java.util.Map |
Request | #{request} | (Not injectable) | java.lang.Object (javax.servlet.http.HttpServletRequest) |
RequestMap | #{requestScope} | @RequestMap | java.util.Map |
ResourceHandler | #{"resource"} | - | javax.faces.application.ResourceHandler |
Session | #{session} | (Not injectable) | java.lang.Object (javax.servlet.http.HttpSession) |
SessionMap | #{sessionScope} | @SessionMap | java.util.Map |
View | #{view} | - | javax.faces.component.UIViewRoot |
ViewMap | #{viewScope} | @ViewMap | java.util.Map |
ExternalContext | #{externalContext} (new) | - | javax.faces.context.ExternalContext |
Last updated