2.1.4 Backing beans
In the MVC world backing beans play the part of the controller, the interaction between the UI and the model. "Backing beans generally contain properties you want to retrieve from users and event listener methods... that process those properties and either manipulate the UI or perform some sort of application processing."
"You associate a component with a backing bean via the JSF expression language (EL), which is similar to the JSP 2.0 and JSTL expression languages." The expression for the rendered attribute in the <panelGrid> declaration below says, 'Do not render the component unless the backing bean counts more than 0 controls':
<h:panelGrid
rendered="#{helloBean.numControls > 0}"
id="controlPanel"
binding="#{helloBean.controlPanel}"
columns="20"
border="1"
cellspacing="0" />
"Here, the component's binding property uses a JSF EL expression to associate it with the HelloBean property controlPanel, which is of type HtmlPanelGrid." One difference between a backing bean and a "Model Object" is that the Model Object would not define types like HtmlPanelGrid. Model Objects should "know nothing" about the UI. It follows that, in our example above, you cannot use the binding property with Model Objects.