ajax从JSP传递对象数组到后台的方法

ajax从JSP传递对象数组到后台的方法

今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

今日工作中遇到了需要从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 '; 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) { 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 accountList = (List)JSONArray.toCollection(ary, RegionContributeAccount.class); for(RegionContributeAccount account : accountList){ companyAccountService.insertContributeAccount(account); } } Map obj = new HashMap(); obj.put("result", 1); return JsonResult.success(obj); } 

后台要点有二,

一,转换ary数组

 JSONArray ary = JSONArray.fromObject(list);

二,数组转自定义java对象

 List accountList = (List)JSONArray.toCollection(ary, RegionContributeAccount.class);

自此,便打通前后端任督二脉。

以上这篇ajax从JSP传递对象数组到后台的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易知道|edz.cc。

以上就是ajax从JSP传递对象数组到后台的方法的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读