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 }
出自博客 http://www.cnblogs.com/yunlei0821/,欢迎留言补充指正,仅供互相交流学习.转载请务必保留此出处..
本文为作者原创 ,欢迎转载和收藏,转载请保留作者及出处,谢谢您的配合,如有侵权,请第一时间联系 yunlei0821@vip.qq.com,以便及时删除...
晨露&无尘