With so many web frameworks in the market - Struts, Struts 2, Spring MVC, VRaptor, Mentaway, WebWork, etc - why would I choose Struts 2? Which conditions would make Struts2 more attractive for me than the others?
Well, struts 2 is the successor to struts, which gives you the option to use POJOs as you actions, instead of extending a framework specific class like in struts. It also uses dependency injection to inject servlet specific objects, which makes it easier for unit testing. It also eliminates the need for the redundant ActionForms, which is a really great thing. As for webwork, struts 2 is the new version of webwork, so they are really the same thing, but struts 2 is like the newer version, so you should use it instead of webwork.
Here, I eliminated 2 frameworks. Let's see who will compare the rest .
Matt Raible has a good presentation on this topic (slides here). The slides have pros and cons for many frameworks. His advice boils down to: choose 2-3 frameworks that best fits your requirements and prototype. No framework is a silver bullet, but if you have some features you can't do without, that will drive the framework you use.