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!