I have real time experience to decide JSF or Sturts. We have application which is running in Oracle forms. Each screen contains around minimum of 30 fields. When we are migrating from forms to Web, we selected JSF instead of Struts, coz, JSF has rich set of components. More over we have extended our JSF component usage to Apache MyFaces, Apache Tobago, ICEFaces which has in-build support for Ajax implementaion for Components and other good UI components. For my case, we want to have good UI represention instead of Oracle forms. So we choose JSF