Spring MVC Binding für Multidimensionale Typen

zahni

Grünschnabel
Hallo alle miteinander,

als frisches Mitglied der Community habe ich gleich eine Frage..
Das Problem klingt erstmal sehr komplex. Ich könnte mir jedoch vorstellen, dass die Lösung sehr leicht ist. Also bitte durchlesen ;)
Ich möchte ein Objekt mit unterobjekten per GET an den Server übermitteln. Andere Wege gehen nicht da es darum geht, während eines REST Requests optional Suchparameter mitzusenden. Da die Suche bei meiner Software ein wenig komplizierter ist, habe ich mich dazu entschieden ein Such-DTO zu entwerfen, welches mit übermittelt werden kann.
Dieses DTO hat noch eine Liste von Unterobjekten, welche ebenfalls mit übermittelt werden sollen. Auf Clientseite hatte ich mir vorgestellt, dieses Objekt einfach über JSON 1zu1 nachzubauen und dann mit Hilfe von jquery via &.param(jsonobjekt) in einen url-get-parameter zu wandeln.
Folgendes kommt dabei raus:

So sieht ein JSON Suchanfrage Objekt aus. Es sucht nach allen Elementen, deren Vorname Harry ist, aufsteigend sortiert nach Name:
Code:
json = {
  orderby : 'name',
  ascending : true, 
  filters : [{
    column: 'firstName', 
    value: 'harry'
  }]
}

Der daraus serialisierte String nach $.param() ist:
Code:
?orderBy=name&ascending=true&filters[0][column]=firstName&filters[0][value]=harry
Schön und gut..nun das Problem! ;-)

Spring kann die Schreibweise "filters[0][column]" nicht mappen. Es geht lediglich die Schreibweise "filters[0].column". Da ich gelesen habe, dass die erstere jedoch die verbreitete Konvention ist, wollte ich fragen ob ihr eine Idee habt, wie ich das anpassen kann? Wenn ich richtig sehe brauche ich irgendwas wie einen CustomCollectionEditor, der jedoch ganze Objekte verarbeitet und nicht nur primitives...

Bitte helft mir ;)
 
Zuletzt bearbeitet:
Zurück