Apparently the NetBeans
IDE creates JSF backing beans under the name "xxxController". It's a lie. As Tsang has said, JSF backing beans are
not Controllers, they are
Models and the actual JSF main Controller is the FacesServlet with sub-controllers as part of the tag implementations. You almost never write your own Controllers in JSF.
Actually, a backing/managed bean is "dirty model", in that if often contains not only POJO data, but listeners (which are not Controller code, but may be used as assistants by Controllers) and Action processors, which are business logic hooks that technically aren't part of the MVC paradigm, but are essential to invoking business functions and navigating to new Views.
A purist would use a backing bean as pretty much a pure GUI data model (as opposed to the ORM persistence data models, for example) and offload business functions onto a pure business-tier class.
In real life, I generally don't do that, unless the business logic is very complex and/or something that I want to be able to re-use in a non-JSF context. Then again, a certain amount of my business logic is actually persistence business logic, and that sort of stuff I relegate to my persistence services tier, which operates above the DAO tier but within my database transactional context. It's where stuff that involves interaction between multiple database tables gets done.
Ideological purity is all very well, but if I can create one class instead of 2 and still be easily understood, I'd rather do that.