Heim > Java > javaLernprogramm > Wie kann ich komplexe Objekte aus GET-Anforderungsparametern in Spring MVC binden?

Wie kann ich komplexe Objekte aus GET-Anforderungsparametern in Spring MVC binden?

DDD
Freigeben: 2024-11-21 10:23:10
Original
321 Leute haben es durchsucht

How Can I Bind Complex Objects from GET Request Parameters in Spring MVC?

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) { ... }
Nach dem Login kopieren

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) { ... }
Nach dem Login kopieren
Nach dem Login kopieren

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) { ... }
Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage