The Model-View-Controller (MVC) Design Pattern in Struts2.0 Framework

The Model-View-Controller (MVC) Design Pattern in Struts2.0 Framework

Previous Home Next

 

The MVC pattern provides a separation of concerns that applies well to web applications. Separation of concerns allows us to manage the complexity of large software systems by dividing them into high-level components.The MVC design pattern identifies three distinct concerns: model, view, and controller.In Struts 2, these are implemented by the action, result, and FilterDispatcher, respectively.

 
Model-Action:- The model is implemented by the Struts 2 action component. But what exactly is the model The model is the internal state of the application. This state is composed of both the data model and the business logic.

MyAction.java

package org.r4r;
public class MyAction {
	private String name,password;
	public String execute(){
		return "success";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}	
}

 View-Result:- The view is the presentation component of the MVC pattern. the result returns the page to the web browser. This page is the user interface these are commonly JSP pages, Velocity templates, or some other presentation-layer technology.

index.jsp

<%@taglib uri="/struts-tags" prefix="s"%>

<s:form action="hello">
<s:textfield name="name" label="Name"/>
<s:submit value="Submit"/>
</s:form>

 Controller-FilterDispatcher:- The role of the controller is played by the Struts 2 FilterDispatcher. The FilterDispatcher class controlling the over all work flow in the struts2.0 framework.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
  <filter>
  <filter-name>f1</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>f1</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

 

Previous Home Next