Spring HTML Tabellen sortieren, filtern, Attribute ausblenden

Todo

Aktives Mitglied
Hi @ all,

ich suche zur Zeit nach eine "elegante" Methode, größere Tabellen zu sortieren, filtern und ggfs. bestimmte Attribute auszublenden. In Moment übermittel ich über Queryparameter die Anzahl der Datensätze, die zu sortierende Spalte, die Sortierrichtung und die aktuelle Seite zu einem Spring Controller. Dieser mappt das in eine "PageKlasse". Leitet diese zum Service, der dann auswertet, ob sortiert werden muss. Je nach dem wird dieses dann zu Methode mit sortieren oder ohne sortieren weitergeleitet. Die Abfrage wird mit dem jdbc-template auf einer mssql Datenbank abgesetzt. Die Datensätze werden dann in DTOs gepackt und wieder zum Controller weitergereicht. Kommt ein Filter hinzu wird noch eine andere Methode aufgerufen. Somit hat man in der DAO sowas wie:
  • Datensätze
  • DatensätzeMitSortierung
  • DatensätzeMitFilter
  • DatensätzeMitSortierungUndFilter
Dabei ist eine große Query für die Datensätze, soll sortiert werden wird am Ende ein Order an die Query gehangen, soll gefiltert werden wird im where noch die Attribute gehangen. Kann ggfs. äußerst unschön sein aber mir viel nichts anderes ein. Es funktioniert auch soweit, jedoch kommen noch andere Funktionen hinzu, wird es schnell extrem unübersichtlich. Es wird nicht mit jpa gearbeitet. Wie macht man sowas denn elegant? Ist ja kein seltenes Problem denke ich mal. Auf fertige Lösung ist extra verzichtet worden wegen Lizenzen.... Danke für eure Hilfe.
 

turtle

Top Contributor
wird im where noch die Attribute gehangen. Kann ggfs. äußerst unschön sein aber mir viel nichts anderes ein. Es funktioniert auch soweit, jedoch kommen noch andere Funktionen hinzu, wird es schnell extrem unübersichtlich.

Liest sich erstmal ganz ordentlich...

Scheint mir eher ein Problem der Wartbarkeit des Codes zu sein.

Ich rate dazu, sich mal das SQL anzuschauen, welches da abgesetzt wird.

Dieses kann man wahrscheinlich durch geeignete Pattern "einfach" erzeugen lassen. So kannst du weitere Funktionen durch eine Methode, die die entsprechende Where-Klause erzeugt, anpassen.

Zum Beispiel gibt es bei mir die Klasse SearchCriteria und darin die Methode provideOrderByString, das die orderby-Klausel zusammenbaut und später an die DB gesendet wird.
 

dzim

Top Contributor
Ok, vielleicht denke ich ja ausserhalb der Box, aber... Was ist mit JavaScript-Basierten Ansetzen? Warum willst du für jede Sortierung oder Filterung eine Server- und/oder DB-Operation absetzen. Schicke die Daten vielleicht eher vollständig (oder wenn zu viel dann "scheibchenweise", wenn auf der Seite gescrollt wird) an den Client und lass dort JavaScript sein Werk verrichten. Verhilft dir zu wenige Arbeit auf der Serverseite und einfacher zu wartenden Code. Ok, die Clientseite wird damit komplexer, aber hey - lager die Arbeit zu ihm aus...
 

Todo

Aktives Mitglied
@turtle ja muss zugeben, Pattern muss ich vielleicht mal noch öfters im Blick haben, da hast du vollkommen recht. Werde ich auch noch einsetzten, sollte vielleicht das erste sein.

@dzim du sprichst da grad eine Sache an, wo ich, ob man es glaubt oder nicht, echt lange überlegt hatte. Habe aber bei Datensätze größer 10000 befürchtet, dass die Response zu groß wird. Wenn man dann diese kleiner sendet muss man beim Filtern zwangsweise wieder eine neue Query absetzten (da der Client nicht von allen weiß). Somit habe ich mir gedacht kann man es auch ganz Server-Side machen. Aber danke für eure Ratschläge bringt mir schon mal sehr viel (zumindest dass ich nicht ganz auf den Holzweg bin).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Wie kann ich dynamische HTML- Tabellen(-spalten) mit JSP aus SELECT-Anweisung erstellen? Web Tier 2
M In einer HTML Tabelle positionieren Web Tier 4
I HTML nach Image Web Tier 1
S Einträge aus Datenbank einzeln darstellen (JSP, JAVA, HTML) Web Tier 9
J Welches Programm visualisiert mir einen html-Dom als Baumdiagram? Web Tier 5
G HTML Fragment in Bean erzeugen? Web Tier 1
D Servlet Servlet Weiterleitung static html Web Tier 5
K Wicket: Pfad zu HTML Dateien ändern/erweitern Web Tier 2
S JSP STRUCT Elemente in HTML Tabelle Web Tier 8
L JSF, no tag was defined for name: html Web Tier 5
S JSP Erzeugten JSP HTML-Quelltext in html-Datei speichern Web Tier 4
V JSF JSF und Standard HTML-Tags Web Tier 7
J JSF Verwirrung: JSF und generiertes HTML sieht 'cryptisch' aus Web Tier 18
S Mit GWT ein Widget/Komponente/HTML-Element im Backend erzeugen? Web Tier 4
S JSP HTML+CSS in JSP einbinden Web Tier 4
T Richtige Aussgabe in eine HTML mit JSF Web Tier 2
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
S HTML Output verschleiern Web Tier 6
B statische Html Seite als response erhalten (Servlet) Web Tier 3
P Problem mit HTML.Tag.OPTION Web Tier 3
J response HTML verwenden Web Tier 2
S HTML Seite als PDF Web Tier 6
F HTML select auslesen Web Tier 3
D Formular als Applet oder HTML Web Tier 6
E Suche Wiki Markup -> HTML rendering engine Web Tier 7
M html + jquery(javascript-framework): elegantes und flexibles Formulardesign Web Tier 5
D <html:select> bzw. <html:option> - Methode auslösen ? Web Tier 2
T JBoss + Servlet + HTML Fileupload + Encoding Web Tier 1
J Wie realisiert man einen HTML-Chat? Web Tier 3
K JSF und HTML-Code Web Tier 2
O JSP: HTML tags werden vor struts tags angezeigt Web Tier 3
F Java Applets in html einbinden Web Tier 10
ff html:text aus mapped properties rendern Web Tier 2
? XML Parsen - IDs auslesen - HTML generieren Web Tier 11
A Struts - JSP - HTML - Visualisierungsproblem Web Tier 3
S Probleme mit den Nav_rules und HTML code Web Tier 2
T HTML Darstellungsproblem Web Tier 3
T html login und apache client Web Tier 13
H Java Servlet und HTML Form Web Tier 3
G MyFaces: HTML Ausgabe Code steuern Web Tier 8
B Struts: html:checkbox Web Tier 2
T JSF Problem mit JSF und Foreign Key Tabellen Web Tier 8
K RichFaces Geschwindigkeit bei Tabellen Web Tier 3
F Struts Tabellen Web Tier 3
S Tabellen in JSP Web Tier 3
A JSF: editirbare Tabellen und ähnliches Web Tier 5

Ähnliche Java Themen

Neue Themen


Oben