springBoot传list类型的注意

list = JSON.stringify(list);
				// layer.msg(JSON.stringify(list))
                layer.confirm('确认要删除吗?'  , function(index) {
                    //捉到所有被选中的,发异步进行删除
                    $.ajax({
                        type:'post',
					    url:"/people/deleteAllPeople",
					    data:{list: list},
                        contentType : 'application/json',

                        success:function (data) {
							if(data.code==200)
							{
                                $(".layui-form-checked").not('.header').parents('tr').remove();
							}
                            layer.msg(data.msg, {
                                icon: 1
                            });
					    }
                    });

 

  @RequestMapping("deleteAllPeople")

    public Response delAll(@RequestBody List<People> list ){
        for (int i = 0; i <list.size() ; i++) {
           if( peoplerService.delete(list.get(i).getId())==null)
               return Response.failure(Msg.UPD_FALIED);
        }

            return Response.success(Msg.UPD_SUCCESS);

    }

然后报错:Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'list': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'list': was expecting ('true', 'false' or 'null')
 at [Source: (PushbackInputStream); line: 1, column: 6]]

字符串解析错误,于是找了很久终于找道问题所在,在于 ajax 的data 要传的是 data:list   而不是 data:{list:list},下面是修改后的

 list = JSON.stringify(list);
				// layer.msg(JSON.stringify(list))
                layer.confirm('确认要删除吗?'  , function(index) {
                    //捉到所有被选中的,发异步进行删除
                    $.ajax({
                        type:'post',
					    url:"/people/deleteAllPeople",
					    data:list,
                        contentType : 'application/json',

                        success:function (data) {
							if(data.code==200)
							{
                                $(".layui-form-checked").not('.header').parents('tr').remove();
							}
                            layer.msg(data.msg, {
                                icon: 1
                            });
					    }
                    });

总结:

1.首先ajax要为post,

2.参数只能是json,data:list

3 设置      contentType : 'application/json',不然会Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported] ,因为默认这种类型不能被解析

4.数组要JSON.stringify(list);解析成为一个合法的json字符串

5.controller 加上@RequestBody

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值