Heim >Java >javaLernprogramm >Wie kann ich ein komplexes Objekt als GET @RequestParam in Spring MVC binden?

Wie kann ich ein komplexes Objekt als GET @RequestParam in Spring MVC binden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-20 15:48:13828Durchsuche

How Can I Bind a Complex Object as a GET @RequestParam in Spring MVC?

Spring MVC: Komplexe Objekte als GET @RequestParam binden

Problem:

Betrachten Sie a Szenario, in dem Sie eine Seite haben, die Objekte aus einer Tabelle auflistet. Sie müssen ein Formular hinzufügen, um die Tabelle mithilfe von Ajax-GET-Anfragen zu filtern, die an eine URL ähnlich der folgenden gesendet werden:

http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z

Anstatt zahlreiche @RequestParam-Parameter für die Controller-Methode zu verwenden, möchten Sie das Ganze binden Objekt direkt filtern.

Beispiel:

Angenommen, Sie haben eine MyObject-Klasse definiert als:

public class MyObject {
    private String prop1;
    private String prop2;
    private String prop3;

    // Getters and setters
    // ...
}

Ihre ideale Controller-Methode würde so aussehen:

@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
    @RequestParam(value = "page", required = false) int page,
    MyObject myObject)

Lösung:

Der Frühling bietet die Fähigkeit, Komplexe zu binden Objekte als @RequestParam-Parameter. Um dies zu erreichen, entfernen Sie einfach die Annotation @RequestParam aus Ihrem Methodenargument:

@RequestMapping(value = "/action")
public @ResponseBody List<MyObject> myAction(
    @RequestParam(value = "page", required = false) int page,
    MyObject myObject)

Spring bindet die Anforderungsparameter automatisch an Ihre MyObject-Instanz.

Das obige ist der detaillierte Inhalt vonWie kann ich ein komplexes Objekt als GET @RequestParam in Spring MVC binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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