首页 > 代码库 > SpringMVC传递数组请求问题

SpringMVC传递数组请求问题

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

经过测试:SpringMVC支持一维数组的参数传递,不支持多维数组的参数传递,如果想传递多维数组,那么我们只好改用其他的办法如:1、将多维数组拆成一维数组;2、将多维数组改为集合传递;3、或者改为字符串,接收时间处理一下等等,方法很灵活。

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

    例如: @RequestParam(value = http://www.mamicode.com/"data[]")long[] data

  

   前端请求:

  

var dataArr = new Array();
		for(var i = 0; i < 10; i++){
			dataArr.push(i);
		}
 		$.ajax({
				url : "test/arrayParam.shtml",
				data : {
					"datas" : dataArr
				},
				dataType : "json",
				success : function(data) {
					alert(data);
				},
				async : false
			});
		}


后端代码:

package com.pyc.search.view.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 创建时间:2014-12-24 上午11:52:00
 * 
 * @author zhangtianyou
 */
@Controller
@RequestMapping("/test")
public class TestController {

	@RequestMapping("/arrayParam")
	public @ResponseBody
	int test1(@RequestParam(value = http://www.mamicode.com/"datas[]") long[] datas) {>

2 多维数组可以转换为一维数组,或者转换为字符串,在后端接收时处理一下。


SpringMVC传递数组请求问题