Komplexe Objekte von GET @RequestParam in Spring MVC analysieren
Stellen Sie sich ein Szenario vor, in dem Sie ein Filterformular auf einer Seite implementieren müssen, die Abfragen durchführt ein Tisch. Die Filterkriterien werden über eine GET-Anfrage an eine Controller-Aktion übermittelt, typischerweise im Format: http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z.
An Um solche Szenarien zu bewältigen, erfordert Spring MVC normalerweise, dass Sie eine Controller-Methode mit mehreren @RequestParam-Parametern definieren, um jede Eigenschaft einzeln abzurufen:
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, @RequestParam(value = "prop1", required = false) String prop1, @RequestParam(value = "prop2", required = false) String prop2, @RequestParam(value = "prop3", required = false) String prop3) { ... }
Angenommen, Sie haben eine definiert MyObject-Klasse mit den Eigenschaften prop1, prop2 und prop3. Um die Parameterverarbeitung zu vereinfachen, möchten Sie möglicherweise alle Anforderungseigenschaften direkt an eine Instanz von MyObject binden.
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject) { ... }
Kann eine Bindung an komplexe Objekte erreicht werden?
Ja, es ist möglich, Anforderungsparameter mit Spring MVC an komplexe Objekte zu binden.
So binden Sie an Komplexe Objekte
Um diese Bindung zu erreichen, entfernen Sie einfach die @RequestParam-Annotation aus dem Objektparameter:
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject) { ... }
Mit dieser Änderung bindet Spring MVC die Anforderungsparameterwerte automatisch an die entsprechende Eigenschaften der MyObject-Instanz.
Das obige ist der detaillierte Inhalt vonWie kann ich komplexe Objekte aus GET-Anforderungsparametern in Spring MVC binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!