SpringMVC源码(三)Controller控制器

SpringMVC 提供了Controller控制器,用来处理我们的业务逻辑,其主要功能:

1,收集、验证请求参数到命令对象

2,将命令对象交给业务对象处理,并返回模型数据

3,返回ModelAndView(数据模型和视图)

Contraller控制器并不能完全代表MVC中的C,它只负责具体的业务功能处理,其业务逻辑控制还是由DispatcherServlet 来实现

DispatcherServlet来负责整体的控制流程的调度部分,包括将请求转移到控制器来进行处理和根据处理器返回的逻辑视图找到具体的视图进行渲染

所以完整的C由DispatcherServletController一起组成。

Contraller接口:

public interface Controller {
	//返回模型数据和视图
	ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;
}

这个接口只有一个方法handleRequest,留给实现的类实现。它接受DispatcherServlet传递的两个参数request和response,并且返回给DispatcherServlet以ModelAndView 

以便进行视图解析渲染。

注:在spring2.5之后加入了注解,@Contraller,@RequestMapping等注解使用让开发变得更加简单。

Contraller接口的所有实现类:      


写一个简单是实现类:

/**
 * 实现Controller 接口
 */
public class Test implements Controller{
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//第一种 可以在new 的同时直接返回视图名称
		//ModelAndView modelAndView = new ModelAndView("springmvc");
		//第二种方式 设置modelandview 的视图名称
		ModelAndView modelAndView2 = new  ModelAndView();
		//添加数据模型
		modelAndView2.addObject("springmvc", "springmvc");
		modelAndView2.setViewName("springmvc1");
		return modelAndView2;
	}
}

然后在我们的spring-mvc.xml 文件中注入:

<!-- 注入controller -->
	<bean name="/spring1" class="com.core.Test"/>
	

注入成功后,访问spring1路径时,便会跳转到springmvc1 视图,同时在视图用${srpingmvc}便会获得添加的数据"springmvc"



猜你喜欢

转载自blog.csdn.net/superpojo/article/details/72885159