码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC传递数组请求问题

时间:2014-12-24 13:29:19      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:springmvc   数组参数   ajax   

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

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

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

    例如: @RequestParam(value = "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 = "datas[]") long[] datas) {

		return datas.length;
	}
}

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


SpringMVC传递数组请求问题

标签:springmvc   数组参数   ajax   

原文地址:http://blog.csdn.net/fengshizty/article/details/42121897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!