ajax从JSP传递对象数组到后台的方法
2018-08-07 09:19
1771 查看
今日工作中遇到了需要从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传递对象数组到后台的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- ajax从JSP传递对象数组到后台
- springMVC通过ajax传递参数list对象或传递数组对象到后台
- 利用ajax传递数组及后台接收的方法详解
- 用ajax传递json对象数组的方法
- Ajax使用方法,经典Ajax封装,可接收解析后台传回的json对象和json数组
- jQuery.ajax向后台传递数组问题的解决方法
- Form表单如何传递List数组对象到后台的解决办法(转)
- 表单用serialize()序列化并且通过ajax向后台传值,后台方法参数传递问题
- ajax传递数组后台接收不到
- js声明数组、对象在jsp页面中(获得ajax得到json数据)
- 后台ajax调用中字符串到jquery中的json对象和数组对象转换问题
- 2个jsp页面之间传递类对象方法
- Java/JSP中传递JSON数据类型给Ajax回调函数方法与注意的
- 用ajax传递单个或者数组对象给struts
- 前台jsp向后台java文件传递数据的方法
- 1:HTML 中 onclick 触发函数 xxx(param) 要传递对象参数的解决方法 2:LocalStorage存储JSON对象的问题 3:ajax请求传送参数为对象问题
- AJAX传递数组到后台处理
- 如何通过ajax 传递list对象 传递到后台action 处理
- 在jsp的c标签循环后台对象属性的情况下,使用js提取其中一个id属性使用ajax传到后台删除
- javascript中创建对象,并序列化为json,通过$.ajax的提交json数据到后台方法,取值为null的问题