Why Struts 2
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. The AJAX features include:- AJAX Client Side Validation
- Remote form submission support (works with the submit tag as well)
- An advanced div template that provides dynamic reloading of partial HTML
- An advanced template that provides the ability to load and evaluate JavaScript remotely
- An AJAX-only tabbed Panel implementation
- A rich pub-sub event model
- Interactive auto complete tag