SpringMVC传递数组请求问题

在使用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 多维数组可以转换为一维数组,或者转换为字符串,在后端接收时处理一下。

时间: 2024-10-14 13:09:42

SpringMVC传递数组请求问题的相关文章

springMVC通过ajax传递参数list对象或传递数组对象到后台

springMVC通过ajax传递参数list对象或传递数组对象到后台 环境: 前台传递参数到后台 前台使用ajax 后台使用springMVC 传递的参数是N多个对象 JSON对象和JSON字符串 在SpringMVC环境中,@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串.同时ajax请求的时候也要指定dataType: "json",

springmvc 传递和接收数组参数

java url中如何传递数组,springMVC框架controller类如何接收数组参数? 下面介绍一下URL中传递数组参数方法: dd.do?titles[]=col1&titles[]=col2&titles[]=col3 或者使用ajax方式传递: var param = {titles:['col1','col2','col3']};  $.ajax({url:"dd.php", type:"post", data:param, asyn

前端AJAX传递数组给Springmvc接收处理

前端传递数组后端(Spring)来接收并处理: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试页面</title> <script type="text/javascript" src="http://www.ostools.net/js/jquery/jquery-1.7.2.js">

.ajax向后台传递数组(转)

js部分代码 //创建一个测试数组 var boxIds = new Array(); boxIds.push(12182); boxIds.push(12183); boxIds.push(12184); //向后台交互 $.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "boxType": 0, "time": new Date()

springMVC传递JSON格式数据

这两天在使用SpringMVC传递JSON数据格式,出现了各种令人头大的问题,但是功夫不负有心人,最后还是解决了问题.在这里记录下来供大家参考,如有不对,还请各位大侠指正. 在SpringMVC传递JSON数据格式需要加入两个jar包:com.springsource.org.codehaus.jackson-1.4.2.jar,com.springsource.org.codehaus.jackson.mapper-1.4.2.jar. 实体JavaBean:Person  具有tname,g

前端Js传递数组至服务器端

相关学习资料 Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 第2版 http://zh.wikipedia.org/wiki/IEEE_802.11 http://www.hackingexposedwireless.com/doku.php http://blog.csdn.net/gueter/article/details/4812726 http://my.oschina.net/u/994235/blog/220586#OSC_h2_6

Jquery Ajax向服务端传递数组参数值

在使用MVC时,向服务器端发送POST请求时有时需要传递数组作为参数值 下面使用例子说明,首先看一下Action [HttpPost] public ActionResult Test(List<string> model) { return Json(null, JsonRequestBehavior.AllowGet); } 方式一,构造表单元素,然后调用serialize()方法得到构造参数字符串 @{ Layout = null; } <!DOCTYPE html> <

springMVC带参数请求重定向

SpirngMVC返回逻辑视图名 可以分下面几种情况: 1. servlet进行请求转发,返回到jsp页面,如  return "index.jsp" ; 2. servlet 返回结果,让请求 重定向到某个jsp页面 ,此时servlet 返回语句类似:  return  " redirect : index.jsp "; 3. servlet 的返回结果是 请求另外一个servlet   此时servlet 返回语句类似:  return  " red

Springmvc之接受请求参数二

Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action="<%=request.getContextPath()%>/user/login.do" method="post"> username:<input type="text" name="username&quo