Roel,
"...but what with spring, shale, tapestry, webwork, ... ?"
Since JSF is
Java, you can work with any other Java based framework - Spring, Hibernate. Shale also works well with JSF. Tapestry and Webwork are more Web ui frameworks more akin to JSF, so it is best to evaluate JSF with these and see which one suits you best.
"and what's the learning effort to go from struts to JSF ?"
I originally was very comfortable with Struts and found moving into JSF a pleasant experience. I would say anyone who knows Struts can easily learn JSF.
"and how easy it is to use/implement that other "hype" of the moment (AJAX) with Struts, JSF,..."
This is obviously a hot area and we have provided some intro coverage of how to build custom JSF components that use AJAX. However the world of AJAX is continuing to evolve and there are now AJAX JavaScript toolkits such as DOJO that simplify AJAX but purely from a JavaScript perspective.. There is even an OpenAJAX initiative that is looking to provide interoperability between the various JavaScript based AJAX toolkits.. From a JSF perspective, this is all good because JSF components can render any markup, be it homegrown basic JavaScript or sophisticated JavaScript code coming from a 3rd party. In either case JSF is agnostic and will support this - actually it will make it easier to use by hiding the complexities to the end users. JMaki is a good example of this approach..
-Chris