SpringBoot同时接收单个对象和List<object>参数 您所在的位置:网站首页 pykeyboard用法 SpringBoot同时接收单个对象和List<object>参数

SpringBoot同时接收单个对象和List<object>参数

#SpringBoot同时接收单个对象和List<object>参数| 来源: 网络整理| 查看: 265

最近做项目的有个需求,是把多个文件移动到另一个文件夹下,这需要把

新的文件夹id – Long类型多个文件的信息 – List< Object > 类型

这两个参数传给后台,我的后台是SpringBoot,怎么接收都不行,上网找了很久也找不到答案。

单纯地传入Long类型或者List< Object > 类型我都会,但两个放一起突然就怎么试都报错。

过了一会儿就想到了个奇葩的解决方案,虽然奇葩,但是可行,因此记录一下,希望能帮到遇到同样问题的小伙伴。

解决方案 后端 @RequestMapping("/moveToFolder/{folderid}") public int moveToFolder(@PathVariable("folderid") Long folderid,@RequestBody List contents) {return 0; }

@PathVariable 注解表示把上面的@RequestMapping("/moveToFolder/{folderid}")中的{folderid}的值注入参数folderid中。

@RequestBody表示这个参数是一个JSON类型,这样SpringBoot不会把他当成字符串去解析。

前端要求

前端往后台发送请求时要

指定dataType: "json"指定header: { 'content-type': 'application/json'}指定method: "post"在两个参数中,将单个的参数拼接在请求的连接后,将List类型用JSON.stringify转成字符串后放在请求的参数中。

比如我上面提到的两个参数,就可以这么传

wx.request({url: "localhost:8080/folder/moveToFolder/"+folderid,data: JSON.stringify(contents),method: "post",dataType: "json",header: {'content-type': 'application/json'},success (res) {console.log(res);} })

在我这个情况中,如果不把文件id拎出来用@PathVariable注解去把它放在访问链接后面被接收,就会报错,各种报错。

如果有什么没看明白的可以留言。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有