前端用AJAX把数组传给后端控制器数组参数的方法

本文介绍了如何使用AJAX在前端将数组数据发送到后端控制器。分别展示了数组元素为基本类型和类对象两种情况的实现方式,提供了对应的控制器代码和前端JS代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端用AJAX把数组传给后端控制器数组参数的方法

分两种情况:
1. 数组元素是基本类型数据的数组。
2. 数组元素是普通类对象的数组。

下面分别讲解。

一、数组元素是基本类型数据的数组
这种情况比较简单,下面是示例代码。

控制器代码:

@Controller
@RequestMapping(value = "testctrl")
 @ResponseBody
 @RequestMapping(value = "testfun", method = RequestMethod.POST)
        public void testFun(@RequestParam(value="arrint[]") int[] arrint){    // 用 Integer 类型也可以。
        return;
    }
}

前端JS代码:

<script type="text/javascript">

    $(function(){
        alert("here is test.");
        test();
    });


    function test()
    {
        var arr = [1,3,5];

        $.ajax({
            url: "/test/testctrl/testfun",
            type: 'POST',
            async: true,
            data: {"arrint[]":arr},
            dataType:'JSON',
            success:function(data){
				// ...
            }
        });
    }

</script>


二、数组元素是普通类对象的数组

这种情况比较复制,要多写点代码,如下。

定义一个类:

public class TestXfer {
    private Integer testid;
    private String teststr;

    public Integer getTestid() {
        return testid;
    }

    public void setTestid(Integer testid) {
        this.testid = testid;
    }

    public String getTeststr() {
        return teststr;
    }

    public void setTeststr(String teststr) {
        this.teststr = teststr;
    }
}

控制器代码:

@Controller
@RequestMapping(value = "testctrl")
public class TestController {
	@ResponseBody
	@RequestMapping(value = "testfun", method = RequestMethod.POST)
	   public void testFun(String testxfers){
		Object val;
		JSONArray jsnarr = JSONArray.fromObject(testxfers);
		TestXfer[]  arrTestxfer = new TestXfer[jsnarr.size()];
		for(int i=0; i<jsnarr.size(); i++){
			arrTestxfer[i] = new TestXfer();
			JSONObject jsnobj = jsnarr.getJSONObject(i);
			if(null != (val = jsnobj.get("testid")))
				arrTestxfer[i].setTestid((Integer) val);
			if(null != (val = jsnobj.get("teststr")))
				arrTestxfer[i].setTeststr(val.toString());
		}
		return:
	}
}

前端JS代码:

<script type="text/javascript">

    $(function(){
        alert("here is test.");
        test();
    });

    function test()
    {
        var arr=
            [
               // { testid:1,  teststr:'str1' },
                { testid:1 },
               // { testid:2,  teststr:'str2' },
                { teststr:'str2' },
                { testid:3,  teststr:'str3' }
            ];

        $.ajax({
            url: "/test/testctrl/testfun",
            type: 'POST',
            async: true,
            data: {testxfers:JSON.stringify(arr)},
            dataType:'JSON',
            success:function(data){
				// ...
            }
        });
    }

</script>


Ok,完毕!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值