1).Struts is controller based and provides access to the controller. 2).Struts has tiles framework 3).More documentation or support is available online because it's an old framework compared to it's counterpart.
Advantages of JSF over struts: 1). JSF is component/view based. It provides many UI components for better UI web applications 2). Jsf application works fine on mobile phones too coz it can render to WML clients where as struts can only render to html clients. 3).Less complexity. No need to bother about all the ActionForms and ActionClasses.
1). Probably not. JSF has more canned controller functionality, however, so you don't need to write as much controller code. 2). I think Tiles now works with JSF, but as I mentioned in an earlier post, I prefer Facelets to do my tiling with. They look a lot alike, however. 3). Probably not, at this late date.
Advantages of JSF over struts: 1). Yup. Actually, it's as about close to true MVC as HTTP can permit. 2). Not true. I've used Struts to render up PDF's, XML and other stuff. There is even a framework for Struts that lets you select a renderer based on the client, although it's not part of basic Struts. It's actually easier in some ways to switch renderers on Struts, since you have to manually control them. 3). Fewer source files, anyway.
An IDE is no substitute for an Intelligent Developer.