@Named vs. @ManagedBean in JSF 2.0

A lot of people seem to suggest that you should use @Named instead of @ManagedBean in JSF 2.0 (e.g. see @ManagedBean dead on arrival? or this JavaRanch discussion).

However, what I discovered in a painful process is that you must use @ManagedBean when the scope is @ViewScoped, apparently because CDI doesn’t declare a view scope. Thus this is correct:

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

public class DogsBean {
// ...

NOTE: I am using JBoss 6 M3.

1 comment:

  1. Another thing I've noticed (although it might just be a problem on my end as I'm new to JSF) is that ajax-induced valueChangeHandlers will work with ManagedBeans but not @Named resources.