posted 14 years ago
Actually, it's a bit more than that, but then so is MVC. What a lot of people don't realize is that:
A) MVC isn't about a master controller that micro-manages everything, it's about a master View controller which handles the overall View and then optional sub-contollers which generally manage sub-views.
B) MVC separates the Model, View, and Controller specifically so that the same backing data (Model) can be used with different View and Controller sets to provide multiple views at the same time. For example, a pie chart in one View and a table in another view, both tracking the same model. Not particularly applicable to JSF, but it's part of the mindset.
The FacesServlet is the master controller. However, the JSF tag elements all provide sub-controllers appropriate to the types of sub-views they support. Such as the DataTable, the SelectOneMenuList and the InputText controls.
Just to further confuse the issue, JSF backing beans aren't 100% pure Model objects. ValueChangeListeners, for example perform Controller functions and I'd lump Converters in there as well.
The bottom line, however, is that in JSF little or no user-create Controller code is required. JSF does most of its magic using simple off-the shelf components.
In fact, that's one of the most common mistakes a lot of people make. They try and code up all sorts of "JSF code" when JSF doesn't need it.
Often the most important part of the news is what they didn't tell.