前端使用Ajax传递数据
function updateCart() {
var updateCart = []; //创建一个空数组
var i=0;
//根据class循环页面标签
$(".cartTr").each(function () {
updateCart[i] = new Object();
//得到需要的值
updateCart[i].cid = $(this).find("#cid").val();
updateCart[i].count = $(this).find("#count").val();
//输出得到的结果
console.info("i===="+i+"====cid====="+updateCart[i].cid+"======count======"+updateCart[i].count);
i++;
});
//json格式转化为字符串
updateCart = JSON.stringify(updateCart);
//输出结果
console.info(updateCart);
//Ajax传数据
$.post("${pageContext.request.contextPath}/cart/updateByCid",
{"cartObj":updateCart}, //数据为json格式
function (data) {
if(data.status=="true"){
alert("修改成功");
return;
}else {
alert("修改失败");
return;
}
},"json"
);
}

后台(Controller)接收数据
这里接收json数据用的是fastjson,依赖如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
//method为提交方式,可写可不写
@RequestMapping(value = "updateByCid",method = RequestMethod.POST)
@ResponseBody
//先用字符串的格式接收
public Map<String,Object> updateByCid(@RequestParam String cartObj){
Map<String,Object> map=new HashMap<>();
int c=0;
//转化为json格式的数组
JSONArray paradms = JSON.parseArray(cartObj);
//循环数组
for (int i = 0; i< paradms.size();i++) {
//得到每一个json
JSONObject paramjson = (JSONObject) paradms.get(i);
//将json格式转化为实体类对象
Cartitem cartitem = paramjson.toJavaObject(Cartitem.class);
//调用方法
c = cartitemService.updateByCid(cartitem);
}
if (c>0){
map.put("status","true");
}else {
map.put("status","false");
}
return map;


本文介绍了如何使用Ajax从前端发送JSON格式的数据,并在Java后台利用fastjson库将接收到的数据转化为实体类对象。内容涵盖前端Ajax调用及后端Controller的数据接收方法。
3384

被折叠的 条评论
为什么被折叠?



