This section provides you a quick introduction to
Struts 2 framework. This section we are discussing the new features, struts 2
basics and architecture.
Struts and webwork has joined together to develop the
Struts 2 Framework. Struts 2 Framework is very extensible and elegant for the
development of enterprise web application of any size.
The Struts 2 framework is designed for simplifying the entire development cycle including building, developing and
maintaining the whole application. It is very extensible as each class of the
framework is based on an Interface and all the base classes are given an extra
application and even you can add your own. The basic platform requirements are
Servlet API 2.4, JSP API 2.0 and Java 5.
All framework classes are based on interfaces and
core interfaces are independent from HTTP.
Check boxes do not require any kind of special
application for false values.
Any class can be used as an action class and one can
input properties by using any JavaBean directly to the action class.
Struts 2 actions are Spring friendly and so easy to
AJAX theme enables to make the application more
Portal and servlet deployment are easy due to
automatic portlet support without altering code.
The request handling in every action makes it
easy to customize, when required.
Struts is designed to boost the productivity
Architecture of Struts 2 Application
Here we are explaining the architecture of Struts 2 Framework.
Struts 2 Framework is based on MVC
(Model-View-Controller) architecture. The logic behind the MVC architecture is
to separate all the three parts the object model of the application, the view
through which the user interacts with the application and the controller that
controls the all the processing done by the application.
Model The model part represents the enterprise data and the rules that are
governed to access and update the data.
View The view part provides interface with the
outside world to our application. A single model can have multiple view for
different purposes. The view object defines the way how the data is to be
presented. View object is responsible for maintaining the consistency in
data presentation whenever the model changes.
Controller The controller controls the user
interaction between the view and model. The controller does not includes any
business logic. It also strictly deals with exposing of methods included in
the model to the user through the view. The controller controls the updation
of a particular parameter in the view which is then displayed by a view.
Based on the outcome of the interaction with the user and model, the
controller determines the appropriate view.
The Flow of Struts 2 based Application
Here is the Request Lifecycle in Struts 2 applications:
User Sends request: User sends a request to
the server for some resource.
FilterDispatcher determines the appropriate
action: The FilterDispatcher looks at the request and then determines
the appropriate Action.
Interceptors are applied: Interceptors
configured for applying the common functionalities such as workflow,
validation, file upload etc. are automatically applied to the request.
Execution of Action: Then the action method
is executed to perform the database related operations like storing or
retrieving data from the database.
Output rendering: Then the Result renders the
Return of Request: Then the request returns
through the interceptors in the reverse order. The returning request allows
us to perform the clean-up or additional processing.
Display the result to user: Finally the
control is returned to the servlet container, which sends the output to the
Struts 2 is a very elegant and flexible front
controller framework based on many standard technologies like Java Filters, Java
Beans, ResourceBundles, XML etc.
For the Model, the framework can use any data
access technologies like JDBC, EJB, Hibernate etc and for the View, the
framework can be integrated with JSP, JTL, JSF, Jakarta Velocity Engine,
Templates, PDF, XSLT etc.