JSF and EE6 managed beans and scopes

27 Dec 2015

A quick cheat sheet:

Scope JSF CDI Notes
Request yes yes Ends after response.
View yes no Ends when user navigates “away”.
Session yes yes Available until session timeout or invalidation.
Application yes yes Available until web application is stopped.
Conversation no yes Controlled by conversation.begin() and conversation.end().

JSF @ManagedBean - in javax.faces.bean

EE6 @ManagedBean - in javax.annotation  (not part of JSF)

CDI beans use @Named in javax.inject for injection.  JSF supports rudimentary injection using @ManagedProperty - may be sufficient for your needs, though!

CDI scopes are in javax.enterprise.context

Ajax works well with view-scoped beans (JSF only), but not with request-scoped beans - because the scope does not persist beyond the response phase.