记spring mvc传入List<Object>的一次尝试

本文记录了一次使用Spring MVC处理实体列表时遇到的异常情况,并给出了具体的解决方案。问题出现在将实体列表作为请求体发送时,由于未正确转换为JSON字符串导致服务器无法解析。

首先,看一段异常:

org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Unrecognized token 'entityList': was expecting ('true', 'false' or 'null')

 

标记的是实体中定义的属性值,实体如下:

@Data
public class ColumnsVO {

    List<GridColumnInfoEntity> entityList = new ArrayList<>();

}
View Code

 

前端js代码:

$.ajax({
url: 'grid/add.columns',
type: "POST",
data: {
entityList: rows
},
success: function (data) {
layer.msg(data.message);
},
dataType: "json",
contentType: "application/json"
});

 

controller处理代码:

@RequestMapping(value = "/add", consumes = "application/json; charset=utf-8")
    public EasyuiResponse addColumns(@RequestBody ColumnsVO columnsVO) {
        System.out.println(JSON.toJSONString(columnsVO));
        return new EasyuiResponse(EasyuiResponse.SUCCESS, "配置成功!");
    }
View Code

 

之前$.ajax中data一直是使用{key:value}方式,这次也不例外,结果就报错了。。。

搜索、查找后解决方案:

$.ajax({
url: 'grid/add.columns',
type: "POST",
data: JSON.stringify({
entityList: rows
}),
success: function (data) {
layer.msg(data.message);
},
dataType: "json",
contentType: "application/json"
});

 

和上面比,只有一点区别,将{key:value}使用JSON.stringify({key:value})转化为String后,一切正常!

 

一个比较奇怪的问题,记之。。。

 

 

另:spring mvc中传入集合需要注意的点:

1、看代码:

@RequestMapping(value = "/add", consumes = "application/json; charset=utf-8")
public EasyuiResponse addColumns(@RequestBody ColumnsVO columnsVO) {
System.out.println(JSON.toJSONString(columnsVO));
return new EasyuiResponse(EasyuiResponse.SUCCESS, "配置成功!");
}

标记部分需要注意!

2、则是上文讨论部分,注意之!

 

 

 

 

 


 

转载于:https://www.cnblogs.com/frinder6/p/6130756.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值