zoukankan      html  css  js  c++  java
  • spring mvc注解笔记

    1、@Controller

      @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,

      并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。

           @Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。

      这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式可以管理:

      <!--方式一-->
      <bean class="com.cqvie.handler.HelloWorld"/>
      <!--方式二-->
      < context:component-scan base-package = "com.cqvie" /> <!-- 路径写到controller的上一层 -->
      此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。
      为了先对Controller 有一个初步的印象,以下先定义一个简单的Controller :
      package com.cqvie.handler;
      import org.springframework.stereotype.Controller;
      @Controller   public class HelloWorld {   @RequestMapping("/helloworld")   public String sayHello() {   System.out.println("Hello World!");   return "success";    }   }

    2、@RequestMapping

      2.1 value:指定请求的实际url
        (1)普通的具体值。

          @RequestMapping(value="book")
        (2)含某变量的一类值。

          @RequestMapping(value="/get/{bookId}")   路径中的bookId可以当变量,@PathVariable注解即提取路径中的变量值。

        (3)ant风格

          @RequestMapping(value="/get/id?"):可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
          @RequestMapping(value="/get/id*"):可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
          @RequestMapping(value="/get/id/*"):可匹配“/get/id/abc”,但不匹配“/get/idabc”;
          @RequestMapping(value="/get/id/**/{id}"):可匹配“/get/id/abc/abc/123”或“/get/id/123”,也就是Ant风格和URI模板变量风格可混用。

        (4)含正则表达式的一类值
          @RequestMapping(value="/get/{idPre:\d+}-{idNum:\d+}"):可以匹配“/get/123-1”,但不能匹配“/get/abc-1”,这样可以设计更加严格的规则。
          可以通过@PathVariable 注解提取路径中的变量(idPre,idNum)

        (5)或关系
          @RequestMapping(value={"/get","/fetch"} )即 /get或/fetch都会映射到该方法上。

      2.2 method:指定请求的method类型, GET、POST、PUT、DELETE等

        @RequestMapping(value="/get/{bookid}",method=RequestMethod.GET)
        @RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})

      2.3 params:指定request中必须包含某些参数值是,才让该方法处理

        @RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del

         仅处理请求中包含了名为“action”,值为“del”的请求。

      2.4 headers:指定request中必须包含某些指定的header值,才能让该方法处理请求

        @RequestMapping(value="/header/id", headers = "Accept=application/json")

        表示请求的URL必须为“/header/id 且请求头中必须有“Accept =application/json”参数即可匹配。

      2.5 consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html

        @RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json")

        方法仅处理request Content-Type为“application/json”类型的请求。

      2.6 produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

        @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json")

        方法仅处理request请求中Accept头中包含了"application/json"的请求,同时暗示了返回的内容类型为application/json;

    3、@RequestParam绑定单个请求参数值

    4、@PathVariable绑定URI模板变量值

    5、@ModelAttribute

      5.1 @ModelAttribute注释一个方法

      5.2 @ModelAttribute注释一个方法的参数

      5.3 @ModelAttribute注解的使用场景 

    6、@SessionAttributes

    7、@Responsebody与@RequestBody

    8、@Resource和@Autowired

    9、@CookieValue

    参考一下做笔记

    https://www.cnblogs.com/xiaoxi/p/5718894.html

    https://www.cnblogs.com/yjq520/p/6734422.html

  • 相关阅读:
    oracle 数据库服务名怎么查
    vmware vsphere 6.5
    vSphere虚拟化之ESXi的安装及部署
    ArcMap中无法添加ArcGIS Online底图的诊断方法
    ArcGIS中字段计算器(高级计算VBScript、Python)
    Bad habits : Putting NOLOCK everywhere
    Understanding the Impact of NOLOCK and WITH NOLOCK Table Hints in SQL Server
    with(nolock) or (nolock)
    What is “with (nolock)” in SQL Server?
    Changing SQL Server Collation After Installation
  • 原文地址:https://www.cnblogs.com/sss-justdDoIt/p/9453235.html
Copyright © 2011-2022 走看看