zoukankan      html  css  js  c++  java
  • SpringMVC配置三大组件

    1.组件扫描器

    使用组件扫描器省去在spring容器配置每个Controller类的繁琐。

    使用<context:component-scan>自动扫描标记@Controller的控制器类,

    在springmvc.xml配置文件中配置如下:

    <!-- 配置controller扫描包,多个包之间用,分隔 -->
    
    <context:component-scan base-package="cn.itcast.springmvc.controller" />

    1.2 注解映射器和适配器

    1.2.1. 配置处理器映射器

           注解式处理器映射器,对类中标记了@ResquestMapping的方法进行映射。根据@ResquestMapping定义的url  匹配@ResquestMapping标记的方法,匹配成功返回HandlerMethod对象给前端控制器。

    HandlerMethod对象中封装url对应的方法Method。

    从spring3.1版本开始,废除了DefaultAnnotationHandlerMapping的使用,推荐使用RequestMappingHandlerMapping完成注解式处理器映射。

    在springmvc.xml配置文件中配置如下:

    <!-- 配置处理器映射器 -->
    <bean
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

    注解描述:

    @RequestMapping:定义请求url到处理器功能方法的映射

    1.2.3. 配置处理器适配器

    注解式处理器适配器,对标记@ResquestMapping的方法进行适配。

    从spring3.1版本开始,废除了AnnotationMethodHandlerAdapter的使用,推荐使用RequestMappingHandlerAdapter完成注解式处理器适配。

    在springmvc.xml配置文件中配置如下:

    <!-- 配置处理器适配器 -->
    <bean
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

    1.2.4. 注解驱动

    直接配置处理器映射器和处理器适配器比较麻烦,可以使用注解驱动来加载。

    SpringMVC使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter

    可以在springmvc.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。

    <!-- 注解驱动 -->
    <mvc:annotation-driven />

    1.3. 视图解析器(其实可以不用手动配,但若要配前后缀,就需要先手动配一下视图解析器)

    视图解析器使用SpringMVC框架默认的InternalResourceViewResolver,这个视图解析器支持JSP视图解析

    在springmvc.xml配置文件中配置如下:

    <!-- Example: prefix="/WEB-INF/jsp/", suffix=".jsp", viewname="test" -> 
            "/WEB-INF/jsp/test.jsp" -->
        <!-- 配置视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 配置逻辑视图的前缀 -->
            <property name="prefix" value="/WEB-INF/jsp/" />
            <!-- 配置逻辑视图的后缀 -->
            <property name="suffix" value=".jsp" />
        </bean>

    逻辑视图名需要在controller中返回ModelAndView指定,比如逻辑视图名为ItemList,则最终返回的jsp视图地址:

    “WEB-INF/jsp/itemList.jsp”

    最终jsp物理地址:前缀+逻辑视图名+后缀

    1.3.1. 修改ItemController

    修改ItemController中设置视图的代码

    // @RequestMapping:里面放的是请求的url,和用户请求的url进行匹配
    // action可以写也可以不写
    @RequestMapping("/itemList.action")
    public ModelAndView queryItemList() {
        // 创建页面需要显示的商品数据
        List<Item> list = new ArrayList<>();
        list.add(new Item(1, "?????", 2399, new Date(), "????"));
        list.add(new Item(2, "!!!!!!!!", 2399, new Date(), "!!!!!!"));
    
        // 创建ModelAndView,用来存放数据和视图
        ModelAndView modelAndView = new ModelAndView();
        // 设置数据到模型中
        modelAndView.addObject("itemList", list);
        // 设置视图jsp,需要设置视图的物理地址
        // modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");
        // 配置好视图解析器前缀和后缀,这里只需要设置逻辑视图就可以了。
        // 视图解析器根据前缀+逻辑视图名+后缀拼接出来物理路径
        modelAndView.setViewName("itemList");
    
        return modelAndView;
    }
  • 相关阅读:
    (转载)悟透JavaScript
    (转载)详解Javascript中prototype属性(推荐)
    A股委托类型
    深交所开盘步骤
    转:SpringMVC 4.1 新特性(二)内容协商视图
    Fidessa
    Spring框架是一种非侵入式的轻量级框架
    在Spring中配置jdbc为什么不能用${username}问题
    windows安装mysql
    新股定价谁说了算?一文读懂中国IPO询价制度
  • 原文地址:https://www.cnblogs.com/xk920/p/9877177.html
Copyright © 2011-2022 走看看