Home  >  Article  >  Java  >  Details and solutions to the problem of passing array requests in SpringMVC

Details and solutions to the problem of passing array requests in SpringMVC

黄舟
黄舟Original
2017-03-04 09:26:301672browse

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 (www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn