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),可以将其定义在方法上也可以将其定义在类上。
posted @ 2019-03-02 20:40  Practical  阅读(1361)  评论(0编辑  收藏  举报