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}" ;
     }
}

注意:两个参数未指定值

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值