SpringMVC注解配置處理器映射器和處理器適配器


一、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"/>
View Code
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> 
View Code

 

二、注解方式開發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 }
View Code

 

三、在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>
View Code

 

tips:使用組件掃描器省去在spring容器配置每個controller類的繁瑣。使用<context:component-scan自動掃描標記@controller的控制器類。

用到的兩個注解:

  • @Controller注解:聲明一個控制器,組件掃描器會自動找到標有該注解的控制器,並將其聲明為Spring 應用上下文中的一個Bean。
  • @RequestMapping注解:@RequestMapping(value="/",method=GET),可以將其定義在方法上也可以將其定義在類上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM