How is the MVC design pattern used in Struts Framework?

The Struts Framework is a standard for developing well-architected Web applications. It has the following features:

Based on the Model-View-Controller (MVC) design paradigm, distinctly separating all three levels:


Model Tier :
  • Struts includes only minimal infrastructure for the model tier
  • A basic implementation of javax.sql.DataSource is included
  • But you can integrate any desired approach

View Tier :
 Form Beans:
  • Represent the server side state of the input fields on an HTML form
  • Contains hooks for resetting fields to default values (needed for checkboxes) and input field validation
  • DynaActionForm means you do not have to create new JavaBeans yourself
 Validation Framework:
  • Abstract input validation rules into separate XML document
  • Extensible for custom field checking
  • Optionally generates client-side JavaScript
  • Always checks on server side
  • Integrated with standard ActionForm beans and DynaActionForm beans
(JSP) Custom Tag Libraries:
  • Bean – General purpose bean and property manipulation
  • Html – Dynamic HTML-based user interfaces (including input forms)
  • Logic – Conditionals and iteration
  • Nested – Versions of other tags that access nested JavaBean hierarchies easily
  • Tiles – Layout management (next page)
(JSP) Tiles Framework:
  • Supports templating for common look and feel of all pages in a web app
  • Tile definitions created in JSP page or in external XML document
  • Definitions can extend base definitions
  • Advanced techniques for dynamically passing information to tiles

Controller Tier :
  • Configuration Document Defines Behavior
  • Action URLs mapped to Actions
  • Data sources
  • Exception handlers
  • Form beans
  • Forwarding URLs mapped to Pages
  • Message Resources for i18n
  • PlugIns for Lifecycle Management
  • One or more documents allowed

Request Processing Lifecycle :
  • Extract action mapping path
  • Select locale (if necessary)
  • Select action mapping to utilize
  • Perform role-based access checks
  • Server-side validation (if requested)
  • Invoke application Action
  • Forward based on application outcome
  • Highly customizable and extendable
Sub-Application Modules :
  • Logically divide single web application into multiple Struts “mini-applications”
  • Session state shared across all modules
  • Standard Action Implementations:
  • Forward or include other URLs





Enter your email address to get our daily JOBS & INTERVIEW FAQ's Straight to your Inbox.

Make sure to activate your subscription by clicking on the activation link sent to your email