ajax从JSP传递对象数组到后台的方法
程序员文章站
2022-06-17 14:14:27
今日工作中遇到了需要从jsp传递对象数组到后台的需求,网上辗转找了很多资料,终于解决。苦于网上很多资料不全,故记录下详细解决过程。如下:
jsp:
functi...
今日工作中遇到了需要从jsp传递对象数组到后台的需求,网上辗转找了很多资料,终于解决。苦于网上很多资料不全,故记录下详细解决过程。如下:
jsp:
function addaccount(){ debugger; var html = ''; var ary = $("#match_account").find("p"); var _list = new array(); if(ary.length){ for(var i = 0,len = ary.length;i < len;i ++){ var account = new object(); html += '<li class="fl mb8" data-id="'+ary[i].id+'" data-sort="0">'; html += '<span class="mr8 display-ib" style="background:#eee;padding:0px 5px 6px 5px">'; html += '<span data-id="">'+ary[i].innerhtml+'</span>'; html += '<a onclick="deleteaccount(this);" href="javascript:;" rel="external nofollow" class="js-btn-remove-tag ml4" style="vertical-align:5px;color:#999;" title="删除">x</a>'; html += '</span>'; html += '</li>'; 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) { var result = json.obj.result; if(result != 1){ layer.error('添加账号失败.'); } } }); } $("#contribute_account").append(html); }
关键之处有三:
一,定义数组
var _list = new array();
二,定义对象,并迭代添加对象属性,最后push进数组
var account = new object();
account.accountid = ary[i].id; account.account = ary[i].innerhtml; _list.push(account);
三,提交时转换数组对象
data : {list : json.stringify(_list)}
后台java:
/** * 添加投稿账号 */ @requestmapping(value = "addcontributeaccounts") @responsebody public jsonresult addcontributeaccounts(string list) { jsonarray ary = jsonarray.fromobject(list); if(ary != null && ary.size() > 0){ list<regioncontributeaccount> accountlist = (list<regioncontributeaccount>)jsonarray.tocollection(ary, regioncontributeaccount.class); for(regioncontributeaccount account : accountlist){ companyaccountservice.insertcontributeaccount(account); } } map<string, object> obj = new hashmap<string, object>(); obj.put("result", 1); return jsonresult.success(obj); }
后台要点有二,
一,转换ary数组
jsonarray ary = jsonarray.fromobject(list);
二,数组转自定义java对象
list<regioncontributeaccount> accountlist = (list<regioncontributeaccount>)jsonarray.tocollection(ary, regioncontributeaccount.class);
自此,便打通前后端任督二脉。
以上这篇ajax从jsp传递对象数组到后台的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: ps怎么设计喷墨效果的人物头像?
下一篇: 新时代女性的特点