Kann keine Abfrage-String-Parameter zu meiner JavaBean zuordnen (mit Spring 4 und Datatables)

8

Ich bin wirklich dabei, meine QueryString-Parameter in mein Spring JavaBean Command-Objekt zu mappen, und ich konnte bis jetzt keine Antwort auf meine Frage finden.

Ich benutze jQuery Datatables plugin mit serverseitige Verarbeitung , so dass jede Aktion in meiner Datentabelle eine AJAX-Anfrage auslöst zu meiner Frühlingsanwendung.

Dies sind die Parameter, die das Datatable-Plugin an meinen Rest-Service sendet:

%Vor%

So erhalte ich es in meinem Spring Controller:

%Vor%

Und schließlich ist dies meine JavaBean DataTableCriterias (angezeigt durch @ModelAttribute):

%Vor%

(get / setters wird weggelassen)

Das funktioniert fast perfekt! Wenn ich diese Zeile entferne:

%Vor%

Dann füllt Spring automatisch meine DataTableCriterias-Bean aus der Abfragezeichenfolge (aber natürlich wird die Spalteneigenschaft nicht zugeordnet)

Aber mit dieser Zeile, bekomme ich diesen Fehler:

%Vor%

Wie ich sehe, besteht das Hauptproblem darin, dass der vom Datatable-Plugin gesendete Parameter 'column' ein zweidimensionales und manchmal auch ein dreidimensionales Array ist:

%Vor%

Also, es sieht so aus, als ob meine Bean korrekt war, aber ich bekomme diesen Fehler und jetzt stecke ich fest.

Irgendwelche Ideen?

Vielen Dank!

    
Berger 16.05.2014, 20:51
quelle

3 Antworten

14

Ok, also habe ich das Problem behoben, indem ich die Parameter, die an den Server gesendet wurden, geringfügig modifiziert habe, um die zwei 3D-Spalten in eine 2D-Matrix zu transformieren. Also:

%Vor%

endete damit:

%Vor%

So machen Sie das in Datenträgern:

%Vor%

Auf diese Weise kann ich diese Eigenschaften in meinem Model-Objekt mit diesem Feld erhalten:

%Vor%

Nur als Referenz, hier ist mein Controller:

%Vor%

und hier ist final meine DataTableCriterias @ModelAttriute:

%Vor%

(get / setters wird weggelassen)

    
Berger 18.05.2014, 22:38
quelle
2

Ich weiß, dass ich zu spät zur Party komme, aber dies: Ссылка

ist eine schöne Alternative, um Ihre Dateneingabe elegant zu lesen. Auch wenn Sie JPA nicht verwenden möchten, können Sie die DataTablesInput- und die DataTablesOutput-Klassen einfach verwenden, um die Eingabe korrekt zu lesen. Ich habe auch jquery.spring-friendly.min.js eingeschlossen, was Spring erlaubt, die Variablen, die hereingekommen sind, leicht zu lesen.

Danke Ссылка für eine schöne elegante Lösung.

    
Somaiah Kumbera 08.08.2016 17:07
quelle
0

Sie senden columns[0] als Parameter, aber columns hat keinen Eintrag mit dem Index 0. Tatsächlich hat es überhaupt keinen Eintrag, da es null ist.

Sie müssen die Liste im Konstruktor von DataTableCriterias instanziieren, damit dies funktioniert. Und es muss genügend Einträge für die Parameter haben, die Sie senden.

    
zeroflagL 17.05.2014 06:33
quelle