SpringMVC传递数组参数

在使用SpringMVC时,我们需要传递数组类型,SpringMVC对数组传递有些限制:

  支持一维数组的参数传递,不支持多维数组的参数传递。

 

当我们需要传递多维数组时有以下几种方法:

  1、将多维数组拆成一维数组;

  2、将多维数组改为集合传递;

  3、或者改为字符串,接收时间处理一下等等,

  4、或者将所有数组中的值拼接传递。(例如:arr=1&arr=2&arr=3,代表三个数组的值)

 

参数传递注意事项:

  传递数组类型时,需要在@requestParam()中添加value,否则会出现HTTP Status 400 - Required String[] parameter 'data' is not present错误。

    例如: @RequestParam(value = "data[]") String[] data

前端请求:

var arr= new Array();
for(var i = 0; i < 10; i++){  
      arr.push(i);  
}
$.ajax({  
    url : "req/arrParam",
    data : {"arr" : arr},
    dataType : "json",
    async : false,
    success : function(data) {
     console.log(data);//打印出arr数组的长度10 //请求成功数据处理 } });

后端代码:

 1 package com.axhu.edu.controller;  
 2   
 3 import org.springframework.stereotype.Controller;  
 4 import org.springframework.web.bind.annotation.RequestMapping;  
 5 import org.springframework.web.bind.annotation.RequestParam;  
 6 import org.springframework.web.bind.annotation.ResponseBody;  
 7   
 8 /** 
 9  * 创建时间:2017-10-31午09:52:00
10  *  
11  * @author yunlei0821
12  */
13 @Controller  
14 @RequestMapping("/req")
15 public class ReqController {  
16   
17     @RequestMapping("/arrParam")
18     @ResponseBody
19     public int arrParam(@RequestParam(value = "arr[]") int[] newArr) {  
20         return newArr.length;    //10
21     }  
22 } 

 

 

posted @ 2017-10-31 10:06  和老虎喝茶彻夜长谈  阅读(10019)  评论(0编辑  收藏  举报
/* 看板娘 */