• spring boot——参数传递——请求注解@RequestMapping各个属性值


    1、RequestMapping接口的源码如下,里面定义了七个属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public interface RequestMappingextends Annotation {
          // 指定映射的名称
        public abstract String name();
          // 指定请求路径的地址
        public abstract String[] value();
          // 指定请求的方式,是一个RequsetMethod数组,可以配置多个方法
        public abstract RequestMethod[] method();
          // 指定参数的类型
        public abstract String[] params();
         
        public abstract String[] headers();
          // 指定数据请求的格式
        public abstract String[] consumes();
          // 指定返回的内容类型
        public abstract String[] produces();
    }

      

    2、下面是我在服务器端编写的一个程序,我将@RequestMapping中的参数都采用了符合原接口的定义的数组的数据类型。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    package com.awaimai.web;
     
    import org.hibernate.validator.constraints.*;
    import org.springframework.validation.annotation.Validated;
    import org.springframework.web.bind.annotation.*;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.Size;
    import java.util.Enumeration;
     
    @RestController
    @Validated
    public class kzq
    {
     
     
        @RequestMapping(value = {"/test4","/test5"},method={RequestMethod.POST, RequestMethod.GET}, consumes={"application/json"}, <br>                    produces={"application/json"}, params={"name=mike","pwd=123456"},headers={"a=1"})
        @ResponseBody
        public String test4()
        {
            return "{\"id\":1}";
        }
     
     
     
    }

      

    2.1  测试value属性:映射的是请求的地址,如果是一个数据,那么这两个地址之间的关系是或(||)的关系

    2.2、method属性:定义了请求的方式,如果此属性定义了多个值,那么可以适应多种请求方式,

            比如此例中我定义了RequestMethod.POST与RequestMethod.GET两种方法,采用postMan发送两种请求也可以得到正确的JSON数据。

            正确的请求方式如下:

     

     

     

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

      

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

           本人实验了一下,如果请求的头中不包含这个属性也能有正确的返回值,但是如果有Accept这个属性,那么前后要匹配,否则输出报错;

     

    =================================================================================

    =================================================================================

    URL:       http://localhost:8080/test5?name=mike&pwd=123456

    如果mike和123456的值未携带或者为空,报错

    ==================================================================

    ===================================================================

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    package com.awaimai.web;
     
    import org.hibernate.validator.constraints.*;
    import org.springframework.validation.annotation.Validated;
    import org.springframework.web.bind.annotation.*;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.Size;
    import java.util.Enumeration;
     
    @RestController
    @Validated
    public class kzq
    {
     
     
     
        @RequestMapping(value = {"/test4","/test5"},method={RequestMethod.POST, RequestMethod.GET}, consumes={"application/json"},<br>                    produces={"application/json"}, params={"name","pwd"},headers={"a=1"})
        @ResponseBody
        public String test4()
        {
            return "{\"id\":1}";
        }
     
     
     
    }

      

    注意:两个参数未指定值

    从中发现,两个参数必须携带,值是多少都可以。

  • 相关阅读:
    iOS沙盒路径
    iOS第三方语音-讯飞语音
    iOS第三方分享-ShareSDK
    iOS第三方语音-微信语音
    iOS-xib(自定义UITableViewCell)
    UITableView点击背景
    OC开发_Storyboard——UIApplication和网络活动指示器
    OC开发_Storyboard——绘制和视图
    OC开发_Storyboard——block和动画
    OC开发_Storyboard——NaviationController简单例子
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/16121512.html
Copyright © 2020-2023  润新知