Ajax传递数组,struts2接收数组

在做web应用时很多时候会遇到批量操作的情况,如批量删除某些记录。这时需要将所需删除的记录的id组成的数组发送给后台进行处理,这里将这些id发送给后台的方式很多,比如:将id组成使用,或其他符号分隔开的字符串,后台拿到这个字符串按照相应的分割方式将字符串分割然后获得这些id。

这里前端使用ajax的方式,后端使用struts2,通过ajax将数组发送给action。

前端jsp中的javascript代码(这里使用了easyui):

var rows = $("#articlelist").datagrid('getSelections');
	
	if(rows.length==0){
		$.messager.alert('提示','请选择所需删除的记录!');
		return false;
	}
	var ids=[];  
	for (var i = 0; i < rows.length; i++) {  
        var id=rows[i].id; //取出id值
    	ids.push(id); //将id值放入数组中
    }  
    
    var params = $.param({'ids':ids},true);
	var url = 'articlemgmt/articleAction_deleteBatch';
	
	$.messager.confirm('提示', '确定删除?', function(r){
		
		if(r){
			$.ajax({
		        url : url,
		        data: params,
		        cache : false, 
		        async : false,
		        type : "POST",
		        dataType : 'json',
		        success : function (result){
<span style="white-space:pre">				</span>//成功处理
		        }
    		});
		}
	});


这里使用到了jquery的param方法,该方法是 将表单元素数组或者对象序列化。是.serialize()的核心方法,

obj:数组或jQuery对象会按照name/value对进行序列化,普通对象按照key/value对进行序列化。

traditional:是否使用传统的方式浅层序列化。

jQuery 代码:

    var params = { width:1680, height:1050 };
    var str = jQuery.param(params);
    $("#results").text(str);
结果:
width=1680&height=1050

Action中List的定义:

通过使用param方法的处理,在action中ids的类型不管是数组还是list都能够正确的接收到这些id了。

private ArrayList<Integer> ids;
ps:一定不要忘了setter方法!




  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值