一、springmvc.xml中配置方式

1 <!--注解映射器 --> 2 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> 3 <!--注解適配器 --> 4 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

1 <!-- 使用 mvc:annotation-driven代替上邊注解映射器和注解適配器配置 2 mvc:annotation-driven默認加載很多的參數綁定方法, 3 比如json轉換解析器就默認加載了,如果使用mvc:annotation-driven不用配置上邊的RequestMappingHandlerMapping和RequestMappingHandlerAdapter 4 實際開發時使用mvc:annotation-driven 5 --> 6 <mvc:annotation-driven></mvc:annotation-driven>
二、注解方式開發Controller實例代碼

1 package cn.itcast.ssm.controller; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.springframework.stereotype.Controller; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.servlet.ModelAndView; 9 10 import cn.itcast.ssm.po.Items; 11 12 //使用Controller標識 它是一個控制器 13 @Controller 14 public class ItemsController3 { 15 16 //商品查詢列表 17 //@RequestMapping實現 對queryItems方法和url進行映射,一個方法對應一個url 18 //一般建議將url和方法寫成一樣 19 @RequestMapping("/queryItems") 20 public ModelAndView queryItems()throws Exception{ 21 22 //調用service查找 數據庫,查詢商品列表,這里使用靜態數據模擬 23 List<Items> itemsList = new ArrayList<Items>(); 24 //向list中填充靜態數據 25 26 Items items_1 = new Items(); 27 items_1.setName("聯想筆記本"); 28 items_1.setPrice(6000f); 29 items_1.setDetail("ThinkPad T430 聯想筆記本電腦!"); 30 31 Items items_2 = new Items(); 32 items_2.setName("蘋果手機"); 33 items_2.setPrice(5000f); 34 items_2.setDetail("iphone6蘋果手機!"); 35 36 itemsList.add(items_1); 37 itemsList.add(items_2); 38 39 //返回ModelAndView 40 ModelAndView modelAndView = new ModelAndView(); 41 //相當 於request的setAttribut,在jsp頁面中通過itemsList取數據 42 modelAndView.addObject("itemsList", itemsList); 43 44 //指定視圖 45 //下邊的路徑,如果在視圖解析器中配置jsp路徑的前綴和jsp路徑的后綴,修改為 46 //modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); 47 //上邊的路徑配置可以不在程序中指定jsp路徑的前綴和jsp路徑的后綴 48 modelAndView.setViewName("items/itemsList"); 49 50 return modelAndView; 51 52 } 53 }
三、在Spring容器中加載Controller

1 <!-- 對於注解的Handler可以單個配置 2 實際開發中建議使用組件掃描 3 --> 4 <!-- <bean class="cn.itcast.ssm.controller.ItemsController3" /> --> 5 <!-- 可以掃描controller、service、... 6 這里讓掃描controller,指定controller的包 7 --> 8 <context:component-scan base-package="cn.itcast.ssm.controller"></context:component-scan>
tips:使用組件掃描器省去在spring容器配置每個controller類的繁瑣。使用<context:component-scan自動掃描標記@controller的控制器類。
用到的兩個注解:
- @Controller注解:聲明一個控制器,組件掃描器會自動找到標有該注解的控制器,並將其聲明為Spring 應用上下文中的一個Bean。
- @RequestMapping注解:@RequestMapping(value="/",method=GET),可以將其定義在方法上也可以將其定義在類上。