Lors de l'utilisation de SpringMVC, nous souhaitons transmettre des types de référence de tableau. SpringMVC a certaines restrictions sur le passage de tableaux :
Après les tests : SpringMVC prend en charge le passage de paramètres pour les tableaux unidimensionnels, mais ne prend pas en charge le passage de paramètres pour les tableaux multiples. -tableaux multidimensionnels. Si vous souhaitez transmettre un tableau multidimensionnel, nous devons utiliser d'autres méthodes telles que : 1. Diviser le tableau multidimensionnel en un tableau unidimensionnel 2. Changer le tableau multidimensionnel en un tableau multidimensionnel. définissez-le et transmettez-le ; 3. Ou changez-le en chaîne, traitez-le pendant le temps de réception, etc., 4 , ou concaténez et transférez les valeurs dans tous les tableaux (par exemple : data=1&data=2&data=3, représentant les valeurs de trois tableaux) La méthode est très flexible.
1 SpringMVC transmet un tableau unidimensionnel : lors de la transmission du type de tableau, vous devez ajouter une valeur dans @requestParam(), sinon une erreur HTTP Status 400 - Le paramètre long[] requis 'data' n'est pas présent se produira.
Par exemple : @RequestParam(value = "data[]")long[] data
Requête frontale :
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 }); }
Code backend :
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; } }