vue-java (Get / Post 传参)
我在controller层传的参数是List时报No primary or single unique constructor found for interface java.util.List
于是加了@RequestParam,结果报Required request parameter ‘pointlist’ for method parameter type List is not present,是因为@RequestParam不支持post请求
| 注解 | 支持的类型 | 支持的请求类型 | 支持的Content-Type | 请求示例 |
| @PathVariable | url | GET | 所有 | /test/{id} |
| @RequestParam | url | GET | 所有 | /test?id=1 |
| @RequestBody | url |POST/PUT/DELETE/PATCH | json | {“id”:1} |
Required request body is missing
大概意思是我们要从前端获取的数据丢失了Required request body is missing
这里我用了@RequestBody这个注解,这个注解的大概作用,就是把前端提交的数据包装成一个json格式的数据给我们返回到后端,后端再对数据进行处理。所以数据丢失的原因应该是在前端,到前端看看该数据的返回过程。
用swagger调试时没有任何问题,可见问题出现再前端
网上找了很久 终于发现了错误
前端数据没有用data:对其进行定义,前端VUE返回的数据如果要以json的形式返回的话,必须用data:进行定义,否则会报错,于是我在前端api中添加了data:returnData
addFun(returnData){
return request({
url:``,
method: 'post',
//returnData条件对象 后端使用RequestBody获取数据
//data表示将对象转换成json进行传递到接口里面
data:returnData
})
},
https://blog.csdn.net/weixin_44778397/article/details/124041578
择善人而交,择善书而读,择善言而听,择善行而从。