Bei der Verwendung von SpringMVC möchten wir Array-Referenztypen übergeben. SpringMVC hat einige Einschränkungen bei der Array-Übergabe:
Nach dem Test: SpringMVC unterstützt die Parameterübergabe für eindimensionale Arrays, unterstützt jedoch nicht die Parameterübergabe für mehrdimensionale Arrays -dimensionale Arrays. Wenn Sie ein mehrdimensionales Array übergeben möchten, müssen wir andere Methoden verwenden, wie zum Beispiel: 1. Teilen Sie das mehrdimensionale Array in ein eindimensionales Array. 2. Ändern Sie das mehrdimensionale Array in ein setze und übergebe es; 3. Oder ändere es in einen String, verarbeite es während der Empfangszeit usw., 4 , oder verkette und übertrage die Werte in allen Arrays (zum Beispiel: data=1&data=2&data=3 , stellt die Werte von drei Arrays dar) Die Methode ist sehr flexibel.
1 SpringMVC übergibt eindimensionales Array: Bei der Übergabe des Array-Typs müssen Sie einen Wert in @requestParam() hinzufügen, andernfalls tritt der Fehler „HTTP-Status 400 – Erforderlicher langer []-Parameter „Daten“ ist nicht vorhanden“ auf.
Zum Beispiel: @RequestParam(value = "data[]")long[] data
Front-End-Anfrage:
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; } }