Programmatic access to JSF managed bean

Thursday, 12 April 2012 12:48

Accessing JSF 2 Managed Bean using code

Programmatic access to JSF managed bean

According to the context ther is several ways to access a managed bean. We will describe some of them

Our backing bean used in our samples will be

@ManagedBean(name="userBB")
@SessionScoped
public class UserBB  {
   ....
}

With Faces Context

JSF 2 FacesContext access managed bean

FacesContext context = FacesContext.getCurrentInstance();
UserBB userBB= (Bean) context.getApplication().evaluateExpressionGet(context, "#{userBB}", UserBB.class);

Using JSF 2 annotation

JSF 2 access managed bean using annotations

@ManagedProperty("#{userBB}")
private UserBB userBB;
public UserBB getUserBB() {
    return userBB;
}
public void setUserBB(UserBB userBB) {
    this.userBB = userBB;
}

Managed bean Servlet

According to the bean scope the api used should be adapted

Application scoped

@Override  
protected void doGet(HttpServletRequest request, HttpServletResponse response){
    UserBB managedBean = (UserBB) getServletContext().getAttribute("userBB");
}

Session scoped

@Override  
protected void doGet(HttpServletRequest request, HttpServletResponse response){
   UserBB managedBean = (UserBB) request.getSession().getAttribute("userBB");
}

Request scoped

@Override  
protected void doGet(HttpServletRequest request, HttpServletResponse response){
   UserBB managedBean = (UserBB) request.getAttribute("userBB");
}

CDI (Context and Dependency Injection)

@Inject
private UserBB userBB;

Related� resources

Tags: bean , access , request , managed , managedbean , @override , protected , (bean) , mybackingbean , scoped , programmatic , httpservletresponse

Add comment


Security code
Refresh