处理器映射器(HandlerMapping)及处理器适配器(HandlerAdapter)详解(二)

注解的 处理器映射器 和 处理器适配器 介绍

  注解的映射器:

  在 Spring3.1使用 DefaultAnnotationHandlerMapping 注解映射器(根据 DispatcherServlet.properties 配置文件中的配置),

  之后使用 RequestMappingHandlerMapping 注解映射器

 

 

 

  注解的适配器:

  在 Spring3.1 之使用 AnnotationMethodHandlerAdapter 注解器适配器(根据 DispatcherServlet.properties 配置文件中的配置),

  之后使用 RequestMappingHandlerAdapter 注解适配器

 

配置注解映射器和适配器

  1、xml文件中配置

<!-- 注解的映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<!-- 注解的适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

<!-- 使用mvc:annotation-driven 代替上面的注解映射器 和 适配器的配置 mvc:annotation-driven 还默认加载了很多参数绑定方法,比如json转换解析器就默认加载了 
    如果使用mvc:annotation-driven,不用配置RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter 
    实际开发使用 mvc:annotation-driven -->
<!-- <mvc:annotation-driven></mvc:annotation-driven> -->

 

  2、开发注解 Handler

  必须使用 注解的映射器注解的适配器 

// 使用Controller注解来 标识它是一个控制器
@Controller
public class UserController3 {
    
    // 用户列表查询
    // @RequestMapping 实现对queryUsers()方法 和 URL 进行映射,一个方法对应一个URL
    // 一般建议将 URL 和 方法 写成一样
    @RequestMapping("/queryUsers")
    public ModelAndView queryUsers() throws Exception{
        ArrayList<User> userlist = new ArrayList<User>();
        User user1 = new User("腾博","123456");
        User user2 = new User("小兵","123456");
        System.out.println("我来了");
        userlist.add(user1);
        userlist.add(user2);
        
        // 返回ModelAndView
        ModelAndView modelAndView = new ModelAndView();
        // 相当于request的setAttribute,在jsp页面中通过userlist取数据
        modelAndView.addObject("userlist", userlist);
        
        // 指定视图
        modelAndView.setViewName("/WEB-INF/jsp/users/user.jsp");
        
        return modelAndView;
    }
    
    // 定义其他的方法
    // 用户的添加
    // 用户的修改
}

 

  Handler 的 xml 文件配置

<!-- 对于注解的 Handler 可以单个配置
    实际开发中建议使用组件扫描
 -->
<!-- <bean class="com.bjxb.ssm.controller.UserController3"/>     -->

<!-- 组件扫描可以扫描Controller、Service.....
    这里让扫描Controller、指定Controller的包
 --> 
 <context:component-scan base-package="com.bjxb.ssm.controller" />

 

posted @ 2018-12-27 17:19  花咖  阅读(580)  评论(0编辑  收藏  举报