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

所属分类: 网络编程 / AJAX相关 阅读数: 1004
收藏 0 赞 0 分享

今日工作中遇到了需要从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中文乱码问题解决方案

ajax中文乱码问题在中文中经常会出现这种问题,其实只要稍加注意就不会出现ajax中文乱码这回事情了,接下来为大家详细介绍下如何解决这类问题
收藏 0 赞 0 分享

jquery ajax实现批量删除具体思路及代码

回调函数,在请求完成后需要进行的操作:此处是把选中的checkbox去掉,接下来为大家详细介绍下,感兴趣的朋友可以参考下哈,希望对你有所帮助
收藏 0 赞 0 分享

JQuery+ajax实现批量上传图片(自写)

jquery+ajax方式实现单张图片上传的代码是可以搜的到,实现批量上传图片的程序却没搜索到于是自己写了个,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

利用Ajax实现在脚本里传值实例介绍

Ajax实现在脚本里传值可以解决实际上的一些问题,本文实现了一下,感兴趣的朋友可以参考下,希望可以帮助到你
收藏 0 赞 0 分享

jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)

CSS也使得表格的布局越来越光彩耀人。但是,无论如何,都掩饰不了那些包装下的死板,接下来为大家介绍下让那些死板的数据 更具有可读性、可用性
收藏 0 赞 0 分享

jQery ajax——load()方法示例介绍

load(url,[data],[callback])url:加载的页面地址;data: 可选项,发送到服务器的数据,格式是key/value;callback:可选项,回调函数,示例代码如下
收藏 0 赞 0 分享

滑轮滚动到页面底部ajax加载数据配合jsonp实现探讨

滚动下拉到页面底部加载数据是很多瀑布流网站的做法,那来看看配合jsonp是如何实现的吧,小菜总结记录之用特在此与大家一起分享,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

ajax 登录功能简单实现(未连接数据库)

未连接数据库下实现ajax 登录功能判断登陆成功与失败,喜欢ajax的朋友可以参考下哈,希望对大家有所帮助
收藏 0 赞 0 分享

AJAX和WebService实现邮箱验证(无刷新验证邮件地址是否合法)

首先在项目里面添加服务引用,验证 Email 地址是否正确(邮件地址合法、只是域名正确、邮件服务器没有找到等等)感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

AJAX和三层架构实现分页功能具体思路及代码

本文涉及到AJAX和三层架构方面的知识,在学习分页的同时也巩固了一下它们的相关知识,适合初学者的你
收藏 0 赞 0 分享
查看更多