springboot接收实体类集合类型参数, 前端使用vue发送数据

今天在写代码的时候遇到一个问题, 就是前端需要发送一个集合list数据到后台, list的类型是一个实体类, 后台使用的是springboot, 但是如何接收这个参数, 确实让我费了点功夫.
查了很多资料, 大多是说需要使用@RequestParam注解, 然后加上value = "list[]" 类似这样的

public ResultJSON methodName(@RequestParam(required = false, value = "list[]") List<String> list){}

但是我试了一下不好使, 这里他的list类型为String, 不是实体类类型, 所以这个解决方案对于我这种情况不适用

后来查到一个解决方案说是使用@RequestBody注解, 同时需要在前端进行相应的操作, 前端的请求头需要设置为
Content-Type=application/json, 我这是在vue框架中进行编码的, 所以我在main.js中设置这个请求头

// 这里的post设置是原有的, 这里不对post进行修改, 新增一个put请求头的设置, 在实际使用中, 使用put处理该类型的请求
Axios.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded";
Axios.defaults.headers.put['Content-Type'] = "application/json";

这里我设置的请求时针对put请求设置, 因为post请求在其他很多请求中都在使用, 如果修改post请求的请求头, 会导致其他所有的请求都会出错, 得不偿失.

然后在js中正常的发送axios请求即可

// 数组数据
var jsonList =[
	{
		paramCode:abc,
		paramValue:abcValue
	},
	{
		paramCode:abc1,
		paramValue:abcValue1
	},
	{
		paramCode:abc2,
		paramValue:abcValue2
	},
]
// jsonList 就是前端普通的实体类集合数据
axios.put("/system/updateParams", jsonList)
     .then(response => {
          const data = response.data;
          if (data.code != "200") {
            this.$Message.error(data.msg);
            return;
          }
          this.$Message.success("保存成功");
          this.getParamList();
      })
      .catch(err => {
          console.log("保存参数异常");
          console.log(err);
      });

可以看到在后台中已经接收到list中了, list中有三个实体类对象
在这里插入图片描述

至此 问题完美解决!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值