JSF
Pros:- Java EE Standard - lots of demand and jobs
- Fast and easy to develop with initially
- Lots of component libraries
Cons:- Tag soup for JSPs
- Doesn't play well with REST or Security
- No single source for implementation
Spring MVC
Pros:- Lifecyle for overriding binding, validation, etc.
- Integrates with many view options seamlessly: JSP/JSTL, Tiles, Velocity, FreeMarker, Excel, PDF
- Inversion of Control makes it easy to test
Cons:- Configuration intensive - lots of XML
- Almost too flexible - no common parent Controller
- No built-in Ajax support
Stripes
Pros:- No XML - Convention over Configuration
- Good documentation (easy to learn)
- Enthusiastic community
Cons:- Small Community
- Not as actively developed as other projects
- Hard-coded URLs in ActionBeans
Struts 2
Pros:- Simple architecture - easy to extend
- Tag Library is easy to customize with FreeMarker or Velocity
- Controller-based or page-based navigation
Cons:- Documentation is poorly organized
- No feedback for missing properties or invalid OGNL expressions
- Googling results in Struts 1.x documentation
Tapestry
Pros:- Very productive once you learn it
- Templates are HTML - great for designers
- Lots of innovation between releases
Cons:- Documentation very conceptual, rather than pragmatic
- Steep learning curve
- Long release cycles - major upgrades every year
Wicket
Pros:- Great for Java developers, not web developers
- Tight binding between pages and views
- Active community - support from the creators
Cons:- HTML templates live next to Java code
- Need to have a good grasp of OO
- The Wicket Way - everything done in Java
Next.. Evaluation Criteria for these frameworks..