JSF Good! Says Rick Hightower.
JSF vs Struts:
Struts uses the Front Controller Pattern and Command Pattern.
JSF uses the Page Controller Pattern. Although there is a single servlet every faces request goes through, the job of the servlet is to receive a faces page with components. It will then fire off events for each component and render the components using a render toolkit.