常见接收参数注解

@RequestParam
@RequestBody
无参数

@RequestParam

使用场景:用于get请求
PS:发送get请求,参数是跟着url后面;因为get请求是没有请求体的

@RequestBody

使用场景:主用于post请求;在表单post请求,普通的post请求中使用。

后端接收情况:

String接收

表单post请求或者普通post,content-type的值必须为:application/x-www-form-urlencoded

    @PostMapping(value = "/testDemo")
    @ResponseBody
    public String testDemo(@RequestBody  String content) throws Exception {
        return content;
    }

对象接收

如果是java的类进行接收,要求post请求体是json字符串,且content-type为:Content-Type = application/json

    @PostMapping(value = "/testDemo")
    @ResponseBody
    public SysUser testDemo(@RequestBody  SysUser user) throws Exception {
        return user;
    }

Map接收

要求post请求体是json字符串,且content-type为:Content-Type = application/json;最重要是Map的key和value都必须是String类型

    @PostMapping(value = "/testDemo")
    @ResponseBody
    public Map<String, String> testDemo(@RequestBody  Map<String, String> map) throws Exception {
        return map;
    }

无参数

使用场景:post请求,接收参数为对象类型。

    @PostMapping(value = "/testDemo")
    @ResponseBody
    public SysUser testDemo(SysUser map) throws Exception {
        return map;
    }

PS: post请求分为两种:Request Payload 和 Form Data。
Request Payload 大概格式如下,请求头部的 Content-Type: application/json,并且请求正文是一个 json 格式的字符串;后端需要用@RequestBody,且接收参数为对象类型或map
image

Form Data 大概格式如下,请求头部的 Content-Type: application/x-www-form-urlencoded;接收参数不需任何注解,只需要为对象类型即可
image