SpringMVC关于get请求传参的问题

在SpringMVC中,请求GetMapping注解的控制器方法,传参数时,如果直接使用get传递一个body参数过去,后端是不能正确接收的

这儿有一个篇为什么get请求不能正确接收body的解释:

HTTP GET 请求可以有 body 吗? - 知乎本文有点啰嗦,没耐心的直接拉到末尾看结论。在网上可以经常看到关于 HTTP GET 请求能不能带 body 的讨论。有的人认为 GET 请求可以带 body,有的认为 GET 请求不能带 body,还有些人认为可以带但最好不带。大家各…https://zhuanlan.zhihu.com/p/456921996不能通过body去传,那就只能用url方式了,用url方式想传一个数组或者集合,则参数之间用逗号隔开,如:?ids=1,2,3,如果报了这个错:

no primary or default constructor found for interface java.util.List

那么再加一个@RequestParam注解给他就可以了

详细内容参考这篇文章:

Spring MVC传递List类型参数报错:No primary or default constructor found for interface java.util.List]使用两种注解解决_天又热了的博客-CSDN博客

 

---------
POST方式接收数据
1:
前端发送请求头Content-Type: application/json
如果有拼接的地址参数,直接使用8种基本类型进行接收,或者创建一个对象来接收(注意可能需要添加@RequestParam注解)
如在拦截器中拦截,或者没有使用实体类接收,可以使用request.getInputStream()手动解析流数据

2:
前端发送请求头Content-Type: application/x-www-form-urlencoded
如果有拼接的地址参数,直接使用8种基本类型进行接收,或者创建一个对象来接收(注意可能需要添加@RequestParam注解)

3:
前端发送请求头Content-Type: multipart/form-data
如果还有拼接的地址参数,直接使用8种基本类型进行接收,或者创建一个对象来接收(注意可能需要添加@RequestParam注解)
传文件大多用这类请求头

不要使用GET请求传body,前面的方法不能处理这类数据

你可能感兴趣的:(springboot,Java,Javascript,java,java-ee)