Java + Spring + Thymeleaf - Paginazione e Filtri

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
stefano_carniel
Prode Principiante
Messaggi: 247
Iscrizione: mercoledì 21 marzo 2007, 0:03

Java + Spring + Thymeleaf - Paginazione e Filtri

Messaggio da stefano_carniel »

Ciao a tutti,
sto implementando una pagina web tramite i framework in oggetto. La pagina ritorna una lista di utenti da una tabella MySql. Finora sono riuscito ad implementare la paginazione in modo corretto, parametrizzando anche il numero di risultati per pagina e il numero di elementi del pager. I passaggi tra le pagine avvengono con indirizzamenti del tipo:

Codice: Seleziona tutto

localhost:8080/admin#
dove al posto del carattere # c'è il numero di pagina
Per ciascun elemento del pager, calcolo l'url a cui deve puntare sfruttando i costrutti di Thymeleaf in un ciclo:

Codice: Seleziona tutto

<li th:each="i : ${#numbers.sequence(beginIndex, endIndex)}" th:class="(${i} == ${currentIndex}) ? 'active'">
    <a th:href="@{'/admin' + ${i}}" th:text="${i}" />
</li>
Ora vorrei introdurre la funzione di filtro e mi stavo chiedendo quale sia la procedura più corretta. Mantenendo l'indirizzamento attuale potrebbe essere

Codice: Seleziona tutto

localhost:8080/admin#?filter=filtroperricerca
ma in tal caso non so come calcolare l'url in Thymeleaf per i vari elementi del pager, cioè mi sembra di avere due soluzioni possibili:
  • mantenere l'url attuale (che comprende il filtro) e sostituire il numero di pagina: ma non ho capito come farlo con la sintassi Thymeleaf
  • salvare la stringa filtro in un model attribute e comporre poi l'url: ma non so se è una buona pratica
In alternativa stravolgere l'indirizzamento tipo

Codice: Seleziona tutto

localhost:8080/admin/#?filter=filtroperricerca
oppure

Codice: Seleziona tutto

localhost:8080/admin/#/filtroperricerca
o ancora

Codice: Seleziona tutto

localhost:8080/admin?page=#;filter=filtroperricerca
Qualcuno può darmi un consiglio? Grazie
|gonzo|
Prode Principiante
Messaggi: 108
Iscrizione: domenica 22 febbraio 2009, 17:43
Contatti:

Re: Java + Spring + Thymeleaf - Paginazione e Filtri

Messaggio da |gonzo| »

Ho implementato una cosa simile tempo fa con lo stesso stack.
Per la funzione di filtro mi sono appoggiato a javascript che invoca un rest endpoint con la stringa da cercare:
https://github.com/lcappuccio/simplexdb

Trovi il filtro su data-operations.findByName(), in sostanza prende il valore da un elemento ("findByNameTextField") e lo manda al rest endpoint, poi chiama la funzione che prepara la tabella.

Purtroppo non ho usato i pager, volevo farlo ma poi per pigrizia ho lasciato perdere e mi sono anche dedicato ad altro :)
Spero ti possa servire a qualcosa.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti