springMVC的各种HandlerMapping:(默认有BeanNameUrl和AnnotationHandlerMapping)

1.默认的BeanNameUrlHandlerMapping(通过name查找Controller)用Controller的name来访问

2.ControllerClassNameHandlerMapping(通过Controller类的名字查找Controller。在网页访问除了Controller类首字母大写,其他的(Controller1)都小写)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd">

       <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

      

    <!-- 配置Controller -->

    <bean ></bean>

    <bean ></bean>

       <!-- 配置视图解析器:ViewResolver -->

       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

              <property name="prefix" value="/"/>

              <property name="suffix" value=".jsp"/>

       </bean>

</beans>

3.SimpleUrlHandlerMapping(通过SimpleUrlHandlerMapping的mappings属性(property)和Controller的id映射关系来访问)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd">

       <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

              <property name="mappings">

                     <props>

                            <prop key="a.do">m1</prop>

                            <prop key="b.do">m2</prop>

                     </props>

              </property>

       </bean>

      

    <!-- 配置Controller -->

    <bean ></bean>

    <bean ></bean>

       <!-- 配置视图解析器:ViewResolver -->

       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

              <property name="prefix" value="/"/>

              <property name="suffix" value=".jsp"/>

       </bean>

</beans>

4.使用注解代替配置信息(annotation),需要添加头部xmlnx:信息(可以找文档)还需要添加spring-aop jar包

  1.包扫描:扫描注解所在的包(扫描带注解的Controller类)

用<context::component-scan>标签

  2.开启注解驱动:会开启AnnotationHandlerMapping

用<mvc:annotation-driver/>标签

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd

        http://www.springframework.org/schema/mvc

        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

       <!-- 1.包扫描:扫描注解所在的包(带注解的Controller类所在的包) -->

       <context:component-scan base-package="com.zhiyou100.kfs.controller"></context:component-scan>

       <!-- 2.开启注解驱动:会开启AnnotationHandlerMapping -->

       <mvc:annotation-driven/>

       <!-- 配置视图解析器:ViewResolver -->

       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

              <property name="prefix" value="/"/>

              <property name="suffix" value=".jsp"/>

       </bean>

</beans>

对应的Controller

package com.zhiyou100.kfs.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

@Controller

@RequestMapping("/myController1")

public class MyControler3 {

      

       @RequestMapping("/list")

       public ModelAndView list() {

              ModelAndView mv=new ModelAndView("login");

              mv.addObject("name","login3<br/>hello!");

              return mv;

       }

}