I don't think that you need to be negative about JSF from the outset, it's actually not that bad, it's just something new :-)
Here's some somewhat biased thoughts, but I'm happy in both camps here so I'm not blind to the faults of JSF.
- advantages and disadvantages in relation to struts
* Struts has a better model for page re-use and tiles support.
* Struts also has a bunch of other stuff like container security hooks that JSF doesn't have in it's navigation model (yet).
* No place for setup and handler "Actions" as such in JSF although it's not much to add this using the available extension points and that's exactly what Struts Shale is doing.
* But, JSF doesn't have to worry about Form Beans! POJO all the way.
* JSF has a better extensibility mechanism and phased Event model, although the changes underway in Struts with respect to using Chain will lessen that differentiator.
- advantages and disadvantages for the developer
* Basically the component model used by JSF makes for much simpler code. Button on screen -> associated Action in code, no request parsing, no LookupDispatchAction to configure and so on.
* The use of expression language everywhere. You can for instance conditionally display a DataTable by simply using an EL expression in the render property that will evaluate to true or false. No need to wrap the whole thing in a JSTL Choose or something similar, just set the property.
* The ability to manipulate the UI component tree in Java before the page is rendered, making dynamic pages really simple
* You don't need to use a GUI IDE to build faces pages - it's no harder than plain JSP if you want to wrire manually, however, because we're dealing with a standard way of defining and binding UI components IDE's can give a lot more help if you choose to use one.
- advantages and disadvantages for the users
* It depends on how much time you want to spend right? JSF defines a component standard and you can already see some really rich component sets coming out (e.g. Oracle's ADF JSF components http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/index.html
There's nothing here you couldn't write yourself, but the question is would you want to spend the time?
I think that JSF can deliver a richer UI quicker - that's the basic promise of the whole framework.
* Oh yes and it's a standard.
Hope that Helps....