FEATURES COMPARING
Struts 2
Configurable MVC components, which are stored in struts.xml file. If you want to change anything, you can easily do it in the xml file.
POJO based actions. Struts 2 action class is Plain Old Java Object, which prevents developers to implement any interface or inherit any
class.
Support for Ajax, which is used to make asynchronous request. It only sends needed field data rather than providing unnecessary
information, which at the end improves the performance.
Support for integration with Hibernate, Spring, Tiles and so on.
Whether you want to use JSP, freemarker, velocity or anything else, you can use different kinds of result types in Struts 2.
You can also leverage from various tags like UI tags, Data tags, control tags and more.
- Brings ample support for theme and template. Struts 2 supports three different kinds of themes including xhtml, simple and
css_xhtml.
Spring MVC
Neat and clear separation of roles. Whether it is controller, command object, form object or anything else, it can be easily
fulfilled with the help of a specialized object.
Leverage from the adaptability, non-intrusiveness and flexibility with the help of controller method signature.
Now use existing business objects as command or form object rather than duplicating them to extend the specific framework base class.
Customizable binding and validation will enable manual parsing and conversion to business objects rather than using conventional string.
Flexible mode transfer enables easy integration with the latest technology.
Customizable locale and theme resolution, support for JSPs with or without Spring tag library for JSTL and so on.
Leverage from the simle, but powerful JSP tag library known as Spring tag library. It provides support for various features like data
binding and themes.
BENEFITS COMPARING
Struts 2
Spring MVC
Clear separation between controllers, JavaBeans models and views that is not possible in Struts.
Spring MVC is more flexible as compared to the Struts.
Spring can be used with different platforms like Velocity, XLST or various other view technologies.
There is nothing like ActionForm in Spring, but binds directly to the domain objects.
Code is also more testable as compared to the Struts.
It is a complete J2EE framework comprising of seven independent layers, which simplifies integration with other frameworks.
It doesn’t provide a framework for implementing the business domain and logic, which helps developers create a controller and a view for
the application.
(Source http://www.cygnet-infotech.com/blog/struts-2-vs-springmvc)