Spring MVC Controller介紹

SpringMVC 框架中,DispatcherServlet負責分發請求到控制器Controller 處理。Controller把用戶的請求數據通過業務層處理後封裝成一個ModelAndView對象,而後再把該對象返回給對應的View進行展現。在SpringMVC 中定義一個Controller是很是簡單的,不須要繼承特定的類,也不須要實現相關接口,只需使用@Controller 註解在一個類上進行標記便可。而後使用@RequestMapping等一些註解用定義URL 請求和映射,這樣Controller 就能被訪問了。spring

 

下面小博老師給你們演示一個Controller定義的小例子:app

@Controller  框架

public class BwfController {  spa

    @RequestMapping ( "/boweifeng" )  .net

    public ModelAndView showView() {  code

       ModelAndView modelAndView = new ModelAndView();  component

       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註解。

相關文章
相關標籤/搜索