zoukankan      html  css  js  c++  java
  • springmvc 之 使用注解开发springmvc

    1. controller映射的几种方式:

    •    BeanNameUrlHandlerMapping
      <!-- 配置handlerMapping -->
          <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
          <!-- 配置后端控制器 -->
          <bean name="/hello.do" class="cn.wh.controller.HelloController"></bean>
    • ControllerClassNameHandlerMapping
      <!-- 配置handlerMapping -->
          <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
          <!-- 配置后端控制器 
              以hello*.do开头的请求都被处理
          -->
          <bean name="helloController" class="cn.wh.controller.HelloController"></bean>
    • SimpleUrlHandlerMapping
      <!-- 配置handlerMapping -->
          <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
              <property name="mappings">
                  <props>
                      <!-- key配置url,value配置的是beanName -->
                      <prop key="/hello.do">helloController</prop>
                  </props>
              </property>
          </bean>
          <!-- 配置后端控制器 -->
          <bean name="helloController" class="cn.wh.controller.HelloController"></bean>
    • 使用注解进行映射

    2. 使用注解开发:

      处理器:

    /**
     * 使用注解开发springmvc
    * @Controller 声明控制器
     */
    @Controller
    /**
     * 窄化
     */
    @RequestMapping("/user")
    public class HelloController {
        /**
         * @RequestMapping 声明映射配置
         * value 指定url,可以指定多个url
         * method 指定请求方法,如果填写了method,那么该方法只能处理指定的请求方法
         */
        @RequestMapping(value="/hello.do",method=RequestMethod.GET)
        public ModelAndView hello(){
            System.out.println("hello annotation");
            ModelAndView mv=new ModelAndView("hello");
            mv.addObject("msg", "annotation application");
            return mv;
        }
    }

    配置文件:

    <!-- 配置注解适配器
            该适配器 使用DefaultAnnotationHandlerMapping来进行映射,该映射器不用配置
         -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
        <!-- 配置视图解析器 -->
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
            <!-- 前缀  在视图名前加上前缀 -->
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <!-- 后缀  在视图名后加上后缀 -->
            <property name="suffix" value=".jsp"/>
        </bean>
        <!-- 配置扫描器 -->
        <context:component-scan base-package="cn.wh.controller"/>

    在配置注解时,可以使用新的适配器和映射器:

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

    也可以使用

    <mvc:annotation-driven/>
  • 相关阅读:
    This is very likely to create a memory leak. Stack trace of thread错误分析
    spring boot 2.0 neo4j 使用
    造个简单的轮子倒是不难,但可用性健壮性高到qt这样全世界都在用,就几乎不可能了
    0xC0000005;Access Violation(栈区空间很宝贵, linux上栈区空间默认为8M,vc6下默认栈空间大小为1M)
    Object::connect: Cannot queue arguments of type 'QMap<QString,QString>'(要使用qRegisterMetaType<StringMap>进行注册)
    QFileSystemModel只显示名称,不显示size,type,modified
    非Qt工程使用Qt的信号槽机制
    web性能权威指南(High Performance Browser Networking)
    缓存穿透 缓存并发 缓存失效
    互联网架构-基础中间件
  • 原文地址:https://www.cnblogs.com/forever2h/p/6801913.html
Copyright © 2011-2022 走看看