您的位置:首页 > 编程语言 > Java开发

springMVC中使用ajax向后台传递数组

2016-07-29 10:00 417 查看
function addToOrder(){

var checkBoxes = document.getElementsByName("bookId");
var buyNums = document.getElementsByName("buyNum");
var bookId = new Array();
var buyNum = new Array();
var flag = false;
var j = 0;

for(var i=0;i<checkBoxes.length;i++){
if(checkBoxes[i].checked){
flag = true;
bookId[j] = checkBoxes[i].value;
buyNum[j] = buyNums[i].value;
j++;
}
}
if(!flag){
alert("请至少选择一个商品购买!");
return;
}

$.ajax({
url : 'addOrder.action',// 跳转到 action

data : {
"bookId" : bookId,
"buyNum" : buyNum,
"pName" : $("#pName").val(),
"address" : $("#address").val(),
},
traditional:true,
type : "post",
cache : false,
dataType : "json",
success : function(data) {
if (data.flag == "true") {
window.location.href="shopping_success.jsp";
} else {
alert(data.info);
}
},
error : function() {
// view("异常!");
alert("异常!");
}
});
}


public @ResponseBody Map<String,Object> addOrder(HttpServletRequest request,long[] bookId,long[] buyNum,String pName,String address){

User user = (User) request.getSession().getAttribute("user");
Map<String,Object> map = new HashMap<String, Object>();
if(orderService.addOrder(bookId, buyNum, pName, address, user)){
map.put("flag", "true");
map.put("info", "购买成功!");
}
else{
map.put("flag", "false");
map.put("info", "库存不足,请修改购买数量!");
}

return map;
}


controller中采用自动获取参数的形式,这个属性是关键,traditional:true。

如果没有就无法传递数组参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: