ajax从JSP传递对象数组到后台的方法
今日工作中遇到了需要从JSP传递对象数组到后台的需求,网上辗转找了很多资料,终于解决。苦于网上很多资料不全,故记录下详细解决过程。如下:
JSP:
functionaddAccount(){
debugger;
varhtml='';
varary=$("#match_account").find("p");
var_list=newArray();
if(ary.length){
for(vari=0,len=ary.length;i';
html+='';
html+=''+ary[i].innerHTML+'';
html+='x';
html+='';
html+='';
account.accountId=ary[i].id;
account.account=ary[i].innerHTML;
_list.push(account);
}
$.ajax({
type:"post",
url:"${ctx}/companyAccount/addContributeAccounts",
data:{list:JSON.stringify(_list)},
async:false,
success:function(json){
varresult=json.obj.result;
if(result!=1){
layer.error('添加账号失败.');
}
}
});
}
$("#contribute_account").append(html);
}
关键之处有三:
一,定义数组
var_list=newArray();
二,定义对象,并迭代添加对象属性,最后push进数组
varaccount=newObject();
account.accountId=ary[i].id; account.account=ary[i].innerHTML; _list.push(account);
三,提交时转换数组对象
data:{list:JSON.stringify(_list)}
后台java:
/**
*添加投稿账号
*/
@RequestMapping(value="addContributeAccounts")
@ResponseBody
publicJsonResultaddContributeAccounts(Stringlist){
JSONArrayary=JSONArray.fromObject(list);
if(ary!=null&&ary.size()>0){
ListaccountList=(List)JSONArray.toCollection(ary,
RegionContributeAccount.class);
for(RegionContributeAccountaccount:accountList){
companyAccountService.insertContributeAccount(account);
}
}
Mapobj=newHashMap();
obj.put("result",1);
returnJsonResult.success(obj);
}
后台要点有二,
一,转换ary数组
JSONArrayary=JSONArray.fromObject(list);
二,数组转自定义java对象
ListaccountList=(List )JSONArray.toCollection(ary, RegionContributeAccount.class);
自此,便打通前后端任督二脉。
以上这篇ajax从JSP传递对象数组到后台的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。