Heim  >  Artikel  >  Java  >  Details und Lösungen zum Problem der Weitergabe von Array-Anfragen in SpringMVC

Details und Lösungen zum Problem der Weitergabe von Array-Anfragen in SpringMVC

黄舟
黄舟Original
2017-03-04 09:26:301657Durchsuche

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;  
    }  
}

  • Das Obige sind die Details und Lösungen für das Problem der Weitergabe von Array-Anfragen durch SpringMVC. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

  • Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn