41 Stimmen

Wie man post array parameter in Spring MVC übergibt

Ich habe mich gerade gefragt, wie man Post-Parameter wie folgendes Auszug aus HTML-Optionen übergeben kann, normalerweise würde ich ein Array in einer Sprache wie PHP bekommen (POST['param'][0]... würde ich glauben).

url?param=value1¶m=value2¶m=value3

Ich habe es versucht:

@RequestMapping(value="/schedule", method = RequestMethod.POST)
public void action(String[] param)

Aber aus irgendeinem Grund funktioniert das nicht...

Alle Ideen wären sehr willkommen!

0voto

Kai Punkte 491

1, fügen Sie eine Java-Klasse als requestBody hinzu

public class PostMembers {
    private String[] members;

    public String[] getMembers() {
        return members;
    }

    public void setMembers(String[] members) {
        this.members = members;
    }
}

2, fügen Sie eine Methode in der Controller-Klasse hinzu

@PostMapping("")
public List addMember(@RequestBody PostMembers postMembers) {
// ...
}

Jetzt kann Ihr Controller Array-Parameter erhalten.

3, testen Sie mit Curl

curl -H "Content-Type: application/json"  \
 -X POST -d '{"members":["item1","item2"]}' \
 http://localhost:8080/api/xxx

oder wenn Sie Vue verwenden

axios.post(someUrl,{
    members:[
       'item1','item2'
    ]
}).then(response =>{
// ...
})

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X