springboot-参数接收注解
常见接收参数注解
@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
Form Data 大概格式如下,请求头部的 Content-Type: application/x-www-form-urlencoded;接收参数不需任何注解,只需要为对象类型即可