Home >Java >javaTutorial >Details and solutions to the problem of passing array requests in SpringMVC
When using SpringMVC, we want to pass array reference types. SpringMVC has some restrictions on array passing:
After testing: SpringMVC supports parameter passing for one-dimensional arrays, but does not support parameter passing for multi-dimensional arrays. If you want to To pass a multi-dimensional array, we have to use other methods such as: 1. Split the multi-dimensional array into a one-dimensional array; 2. Change the multi-dimensional array to a set and pass it; 3. Or change it to a string, process it during the reception time, etc., 4 , or concatenate and transfer the values in all arrays (for example: data=1&data=2&data=3, representing the values of three arrays) The method is very flexible.
1 SpringMVC passes one-dimensional array: When passing array type, you need to add value in @requestParam(), otherwise HTTP Status 400 - Required long[] parameter 'data' is not present error will occur.
For example: @RequestParam(value = "data[]")long[] data
Front-end request:
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 }); }
Backend code:
##
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 Multidimensional arrays can be converted into dimensional array, or converted to a string, which is processed when received by the backend.
The above are the details and solutions to the problem of SpringMVC passing array requests. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!