Spring MVC Controller介绍

来源:互联网 发布:制作卡通图片的软件 编辑:程序博客网 时间:2024/04/28 08:30

SpringMVC 框架中,DispatcherServlet负责分发请求到控制器Controller 处理。Controller把用户的请求数据经过业务层处理后封装成一个ModelAndView对象,然后再把该对象返回给对应的View进行展示。在SpringMVC 中定义一个Controller是非常简单的,不需要继承特定的类,也不需要实现相关接口,只需使用@Controller 注解在一个类上进行标记即可。然后使用@RequestMapping等一些注解用定义URL 请求和映射,这样Controller 就能被访问了。

 

下面小博老师给大家演示一个Controller定义的小例子:

@Controller  

public class BwfController {  

    @RequestMapping ( "/boweifeng" )  

    public ModelAndView showView() {  

       ModelAndView modelAndView = new ModelAndView();  

       modelAndView.setViewName( "boweifeng" );  

       modelAndView.addObject( "addredd" , "上海市云南北路59号15楼" );  

       return modelAndView;  

    }  

}   

在这个例子中,@Controller 用于标记一个类,使用@Controller标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。

仅仅使用@Controller 标记还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为没有相关配置,Spring 还不能识别它。那么怎么才能让Spring识别它呢?这就需要我们把这个控制器类交给Spring管理。

两种方式可以把BwfController交给Spring 管理,让它能够识别标记的@Controller 。

1. 在SpringMVC 的配置文件中定义MyController 的bean 对象。

<bean class="com.bwf.controller.BwfController "/>

这句话意味着在spring中手动定义该controller bean。如果controller比较多,这样做会比较麻烦。

2. 在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

<context:component-scan base-package = "com.bwf.controller" />  

定义了component-scan 后,spring会自动扫描指定包内的类是否有@Controller注解。

0 0
原创粉丝点击