ajax请求springmvc怎样传递集合类型?

首先要知道springmvc中是不允许直接传递“集合”作为请求的方法参数的。
如下:
	@RequestMapping(value = "/addAP")
	@ResponseBody
	public String addAP(List<AriTicketList> ariTicket){

		return "0";
	}

这样直接中ajax中传递一个集合,springmvc是不允许接收的。下面介绍一下解决方法。

  1. 新建一个包装类
public class AriTicketList {

	private List<AriTicket> ariTicket;// 装配AriTicket

	public List<AriTicket> getAriTicket() {
		return ariTicket;
	}

	public void setAriTicket(List<AriTicket> ariTicket) {
		this.ariTicket = ariTicket;
	}
}

2.编写访问接口

	@RequestMapping(value = "/addAP")
	@ResponseBody
	public String addAP(AriTicketList ariTicketList){
	
		return "0";
	}

3.ajax请求封装

// 对象数组
	var show = [{"orderId":"111","userName":"小黄"},
				{"orderId":"111","userName":"小红"}];
	
	var obj;// 中间值
	var ariTicketList;// 需要传入的对象
	
	for(var i = 0; i < show.length; i++){// 数组
		
		var orderId = "ariTicket["+i+"].orderId";// 装配索引
		var userName = "ariTicket["+i+"].userName";
	
		obj = {
				[orderId]:show[i].orderId,// 动态引入key值,格式 [变量]
				[userName]:show[i].userName
		};
		
		ariTicketList = $.extend(ariTicketList, obj);// 将多个对象合并成目标对象
	}

	 $.ajax({
		async:false,
		cache:false,
		url:"/AirBooking/User/addAP.action",//访问springmvc路径
		data:ariTicketList,// 参数
		type:"post",
		dataType:"json",
	    xhrFields: {
            withCredentials: true
        },
		
		success:function(data){
			
			alert(data);
		}
	});
}

4.参数合并的结果是

{ariTicket[0].orderId: "111", ariTicket[0].userName: "小黄", ariTicket[1].orderId: "111", ariTicket[1].userName: "小红"}

这样就可以实现传递list集合了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值