如何在列表中设置$.ajax数据<;实体>;来自控制器&x27;什么是模型图?

如何在列表中设置$.ajax数据<;实体>;来自控制器&x27;什么是模型图?,ajax,list,spring-mvc,Ajax,List,Spring Mvc,我想实现一个简单的购物车功能,用户可以看到他们添加到购物车中的商品,当用户点击buy按钮时,他可以购买购物车中的所有商品 @控制器 @RequestMapping(value = "/shoppingcart",method = RequestMethod.GET) public String shoppingCart(ModelMap model) { //get goods info of the user's shopping cart List<ShoppingCa

我想实现一个简单的购物车功能,用户可以看到他们添加到购物车中的商品,当用户点击buy按钮时,他可以购买购物车中的所有商品

@控制器

@RequestMapping(value = "/shoppingcart",method = RequestMethod.GET)
public String shoppingCart(ModelMap model) {
    //get goods info of the user's shopping cart
    List<ShoppingCartInfo> shoppingCartInfos = shoppingService.findShoppingCardInfoByUserId(getCurrentUserId());
    model.put("shoppingCartInfos",shoppingCartInfos);
    return "shoppingcart.jsp";
}
@RequestMapping(value=“/shoppingcart”,method=RequestMethod.GET)
公共字符串购物车(ModelMap模型){
//获取用户购物车的商品信息
List shoppingCartInfos=shoppingService.findShoppingCardInfoByUserId(getCurrentUserId());
模型.put(“shoppingCartInfos”,shoppingCartInfos);
返回“shoppingcart.jsp”;
}
JSP


编号
商品标题
价格
购买数量
//显示商品信息
${count.index+1}
${shoppingCartInfo.cost}
${shoppingCartInfo.itemNum}
addData(${shoppingCartInfo})

阿贾克斯


$(“#shoppingCartTable”).DataTable({
“语言”:{
“url:“${AppContext}resources/lang/datatables_zhcn.json”
},
“pagingType”:“完整编号”
})
$('buyAllItemsBtn')。单击(函数(){
$.ajax({
类型:“POST”,
url:“${AppContext}买方/买方项目”,
/*传统的:是的*/
数据:${shoppingCartInfos},//**错误在这里**
成功:功能(结果){
如果(result.resultStatus==“成功”){
}否则{
showModal(“购买失败",结果:resultMsg,“”;
}
}
})
})

错误:

我的问题是:

(1) 数据:${shoppingCartInfos}我想将数据发送到${AppContext}买方/买方项目,但没有成功 (2) ${shoppingCartInfos}值为[ShoppingCartInfo{shoppingcartId=4,userId=22,itemId=10}],对象具有列表对象类名,我可以删除它吗


我不熟悉这些知识,谢谢您的帮助

看看JSON stringify。这可能是您需要的:


看看JSON stringify。它可能是您所需要的:


这是我的错。我重写了ShoppingCartInfo类的toString()方法


删除ShoppingCartInfo是可以的

这是我的错。我重写了ShoppingCartInfo类的toString()方法


删除ShoppingCartInfo是正常的

仍然有一个错误:未捕获的语法错误:意外的标记{data:JSON.stringify({shoppingCartInfos:[ShoppingCartInfo{ShoppingCartInfo{4,userId=22,itemId=10]}),它不是像[{},{},{},{}这样的标准格式,因为列表中有“ShoppingCartInfo“类名,我认为错误是由此引起的还有一个错误:未捕获的语法错误:意外的标记{data:JSON.stringify({shoppingCartInfos:[shoppingCartInfos{ShoppingCartInfo{4,userId=22,itemId=10]}),它不是像[{},{},{},{}这样的标准格式,因为列表中有“ShoppingCartInfo”类名,我认为错误是由此引起的
<body>
<%@include file="common/navbar.jsp"%>
<div class="container">
    <table id="shoppingCartTable" class="table table-striped table-hover results ellipsis-table">
        <thead>
        <tr>
            <th>编号</th>
            <th>商品标题</th>
            <th>价格</th>
            <th>购买数量</th>
        </tr>
        </thead>
        <tbody>
            //show goods info
            <c:forEach var="shoppingCartInfo" items="${shoppingCartInfos}" varStatus="count">
                <tr>
                    <td >${count.index + 1}</td>
                    <td><a href="${AppContext}item/showItem/${shoppingCartInfo.itemId}">${shoppingCartInfo.itemTitle}</a></td>
                    <td>${shoppingCartInfo.cost}</td>
                    <td>${shoppingCartInfo.itemNum}</td>
                </tr>
                addData(${shoppingCartInfo})
            </c:forEach>
        </tbody>
    </table>
    <div class="col-md-offset-10" style="margin-top: 20px">
        <a href="javascript:void(0)" class="btn btn-raised btn-primary" id="buyAllItemsBtn">购买</a>
        <a href="javascript:history.back(-1);" class="btn btn-raised btn-primary">退出</a>
    </div>

</div>


<%@include file="common/footer.jsp"%>
<script type="text/javascript">

$('#shoppingCartTable').DataTable({
    "language": {
        "url": "${AppContext}resources/lang/datatables_zhcn.json"
    },
    "pagingType": "full_numbers"
})

$('#buyAllItemsBtn').click(function () {
    $.ajax({
        type:"POST",
        url:"${AppContext}buyer/buyAllItems",
        /*traditional: true,*/
        data:${shoppingCartInfos},//  **the error is here**
        success:function (result) {
            if(result.resultStatus == "SUCCESS") {

            }else {
                showModal("购买失败",result.resultMsg,"");
            }
        }
    })
})
var data = JSON.stringify({
        infos: ${shoppingCartInfos}
});

$.ajax({
        type:"POST",
        url:"${AppContext}buyer/buyAllItems",
        data:data,
@Override
public String toString() {
    return "ShoppingCartInfo{" +
            "shoppingcartId=" + shoppingcartId +
            ", userId=" + userId +
            ", itemId=" + itemId +
            ", itemTitle='" + itemTitle + '\'' +
            ", cost=" + cost +
            ", itemNum=" + itemNum +
            ", createTime=" + createTime +
            '}';
}