关于Springboot中前端向controller传递List参数报错的问题

关于Springboot中前端向controller传递List参数报错的问题

为实现批量修改,controller中传入一个List集合,controller中代码如下:

@RequestMapping("updateAllGoods")
    public  boolean updateAllGoods( List<Goods> goodsList){
        int res = goodsService.updateAllGoods(goodsList);
        if (res>0){
            System.out.println(res);
            return true;
        }else {
            return false;
        }
    }

前端的ajax代码如下:

 $("#but1").click(function () {
           var goodsList = new Array();
           goodsList.push({goods_name: "铝锭",goods_pay :2000});
           goodsList.push({goods_name: "铝锰合金",goods_pay :1000});
           var list = JSON.stringify(goodsList);
           $.ajax({
               type:'post',
               url:'goods/updateAllGoods',
                data:list,
               success:function (res) {
                   if (res ==true){
                       $("#info").html("录入成功").css("color","green");
                   }
                   if (res ==false){
                       $("#info").html("录入失败").css("color","red");
                   }
               }
           })
       })

运行后出现以下错误:
在这里插入图片描述

查了很久以后,了解到list前需要添加注解@RequestBody。注解添加完运行后却又报错。错误如下:
在这里插入图片描述
后来又在网上搜了很久很久很久,这是因为默认的类型是application/x-www-form-urlencoded;charset=UTF-8’,所以不要忘记在ajax中添加这样的代码:

 $("#but1").click(function () {
           var goodsList = new Array();
           goodsList.push({goods_name: "铝锭",goods_pay :2000});
           goodsList.push({goods_name: "铝锰合金",goods_pay :1000});
           var list = JSON.stringify(goodsList);
           $.ajax({
               type:'post',
               url:'goods/updateAllGoods',
               contentType : 'application/json',   //将contentType的类型改为这个就可以使用注解@RequestBody了
                data:list,
               success:function (res) {
                   if (res ==true){
                       $("#info").html("录入成功").css("color","green");
                   }
                   if (res ==false){
                       $("#info").html("录入失败").css("color","red");
                   }
               }
           })
       })

最后总结一下,需要注意的地方就是注解list前加上注解@RequestBody,ajax中的contentType 设置成’application/json’。

第一次写博客,记录一下错误,也希望帮助对别人有用!

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页