The new version Struts 2.0 is a combination of the Sturts action framework and Webwork. According to the Struts 2.0.1 release announcement, some key features are:
Simplified Design - Programming the abstract classes instead of interfaces is one of design problem of struts1 framework that has been resolved in the struts 2 framework. Most of the Struts 2 classes are based on interfaces and most of its core interfaces are HTTP independent. Struts 2 Action classes are framework independent and are simplified to look as simple POJOs. Framework components are tried to keep loosely coupled.
Simplified Actions - Actions are simple POJOs. Any java class with execute() method can be used as an Action class. Even we don't need to implement interfaces always. Inversion of Control is introduced while developing the action classes. This make the actions to be neutral to the underlying framework.
No more ActionForms - ActionForms feature is no more known to the struts2 framework. Simple JavaBean flavored actions are used to put properties directly. No need to use all String properties.
Simplified testability - Struts 2 Actions are HTTP independent and framework neutral. This enables to test struts applications
very easily without resorting to mock objects.
Intelligent Defaults - Most configuration elements have a default value which can be set according to the need. Even there are xml-based default configuration files that can be overridden according to the need.
Improved results - Unlike ActionForwards, Struts 2 Results provide flexibility to create multiple type of outputs and in actual it helps to prepare the response.
Better Tag features - Struts 2 tags enables to add style sheet-driven markup capabilities, so that we can create consistent pages with less code. Struts 2 tags are more capable and result oriented. Struts 2 tag markup can be altered by changing an underlying stylesheet. Individual tag markup can be changed by editing a FreeMarker template. Both JSP and FreeMarker tags are fully supported.
Annotations Introduced: Applications in struts 2 can use Java 5 annotations as an alternative to XML and Java properties configuration. Annotations minimize the use of xml.
Stateful Checkboxes - Struts 2 checkboxes do not require special handling for false values.
QuickStart - Many changes can be made on the fly without restarting a web container.
Customizing Controller - Struts 1 lets to customize the request processor per module, Struts 2 lets to customize the request handling per action, if desired.
Easy Spring Integration - Struts 2 Actions are Spring-aware. Just need to add Spring beans.
Easy Plugins - Struts 2 extensions can be added by dropping in a JAR. No manual configuration is required!
AJAX Support - The AJAX theme gives interactive applications
a significant boost.
The framework provides a set of tags to help you ajaxify your applications, even on Dojo.