Heim  >  Artikel  >  Java  >  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
DDDOriginal
2024-11-21 10:23:10267Durchsuche

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) { ... }

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!

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