加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:11:43 所属栏目:百科 来源:网络整理
导读:前端用AJAX把数组传给后端控制器数组参数的方法 分两种情况: 1. 数组元素是基本类型数据的数组。 2. 数组元素是普通类对象的数组。 下面分别讲解。 一、数组元素是基本类型数据的数组 这种情况比较简单,下面是示例代码。 控制器代码: @Controller@Request
前端用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",data: {testxfers:JSON.stringify(arr)},success:function(data){
				// ...
            }
        });
    }

</script>


Ok,完毕!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读