The Advantages of Struts:
Mature and proven
Lots of documentation and reference materials
Large developer base
Broad tool and IDE support
The Advantages of JavaServer Faces:
Standard UI component model
Robust event handling mechanism
Render kit support for different clients
Highly 'pluggable' - components, view handler, etc
Governed by JCP
I switched from Struts to JSF about 5 years ago and haven't looked back.
In theory, Struts is more "bare metal" and therefore can achieve higher performance, but in practice, I don't know of anyone who's actually measured this. You can mix Struts and JSF in the same webapp, incidentally.
In reality, JSF gives better data validation with less work and fewer source files, so unless I have a particular performance issue, I don't worry about any hypothetical speed benefits of Struts over JSF. Assuming that there really are any.
Customer surveys are for companies who didn't pay proper attention to begin with.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com