zoukankan      html  css  js  c++  java
  • springMVC--4种映射处理器handlerMapping

    •  根据controller的name名称来映射寻找controller:BeanNameUrlHandlerMapping  (默认)

    1.1开启该映射:默认是开启的
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
    1.2定义bean的name属性:
    <bean id="helloController" name="/hello1.do" class="com.controller.HelloController"></bean>
    1.3界面访问URL:与bean的name属性值一致
    http://localhost:5080/springmvc/hello1.do
    • 根据URL来映射寻找controller:推荐使用:SimpleUrlHandlerMapping

    2.1开启该映射:
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
    <props>
    <prop key="/hello2.do">HelloController</prop>
    </props>
    </property>
    </bean>
    2.2定义bean:
    <bean id="helloController" class="com.controller.HelloController"></bean>
    2.3界面URL访问:与prop的key属性值一致
    http://localhost:5080/springmvc/hello2.do
    优点:将controller定义与映射分离开,耦合性低。
    • 根据controller的类名来映射寻找controller: ControllerClassNameHandlerMapping 

    3.1开启类名映射处理器:
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
    3.2定义bean
    <bean id="hello3Controller" class="com.controller.Hello2Controller"></bean>
    3.3界面URL访问:与bean的id属性值无关。
    http://localhost:5080/springmvc/hello2.do   正确
    http://localhost:5080/springmvc/hello2Controller.do  正确
    http://localhost:5080/springmvc/hello21111.do  正确
    http://localhost:5080/springmvc/hello3.do 错误
    注意点:使用类名来访问一个Controller,
    • 使用注解来映射寻找controller: DefaultAnnotationHandlerMapping

    DefaultAnnotationHandlerMapping和RequestMappingHandlerMapping都是处理requestMapping的注解,
    前者以废弃,不建议使用,后者用来代替前者

    1.开启注解扫描组件:
    作用:当我加载配置文件时,到我们指定的包下扫描(读取)Java文件,
    寻找标注注解的地方(接口,类,方法或者其他),进行完成初始化。
    <beans>
    <!--配置扫描使用注解的包路径  -->
    <context:component-scan base-package="com"></context:component-scan>
    <!--开启springMVC注解  -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />  
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>  
    </beans>
    
    
    2.在类上标记:@Controller 声明该类是一个springMVC Controller
    3.在方法上使用:@RequestMapping("/login") 声明该方法处理哪一个请求
    eg:
    @Controller
    public class Login {
    @RequestMapping("/login")
    public ModelAndView login(){
    ModelAndView mv = new ModelAndView(); 
    mv.setViewName("login"); 
    return mv;
    }
    }
  • 相关阅读:
    Hdu-5983 2016ACM/ICPC亚洲区青岛站 B.Pocket Cube 模拟
    Codeforces Round #300 F
    cf298F:状压dp+剪枝
    POJ3294--Life Forms 后缀数组+二分答案 大于k个字符串的最长公共子串
    jzp线性筛及其简单应用
    Codeforces Round #299 (Div. 1)C. Tavas and Pashmaks (凸壳)
    Codeforces Round #236 (Div. 2)E. Strictly Positive Matrix(402E)
    【2012天津区域赛】部分题解 hdu4431—4441
    HDU4436---str2int 后缀树组(12年天津区域赛)
    Codeforces
  • 原文地址:https://www.cnblogs.com/laoxia/p/9530505.html
Copyright © 2011-2022 走看看