Struts(2) is more of an MVC
pattern, and relies on actions,controllers,interceptors etc.
Using Ajax or such with
JSP pages is perfectly doable also.
JSF is primarily a component driven architecture, where pages consist of independent "units" with one or more backing beans.
The lifecycle is quite interesting. It also has tremendous Ajax support for partial page refreshing.
You can actually combine the two, or better yet use JSF with Spring MVC !!
WP