TP5: Pagination Et Tri Des Entités Affichées Dans Une Vue
TP5: Pagination Et Tri Des Entités Affichées Dans Une Vue
TP5: Pagination Et Tri Des Entités Affichées Dans Une Vue
Cette interface contient la signature d’une variante de la méthode findAll() qui retourne
une page d’entité selon des informations passées en argument à la méthode de type
Pageable :
Pageable est une interface qui représente les informations sur la pagination :
- Le contenu de la page courante d’entité : getContent()
- Le nombre total des entités : getTotalElements()
- Le nombre total des pages : getTotalPages()
PageRequest est une classe qui implémente Pageable. La méthode statique of de cette
classe permet d’instancier un objet avec les 2 paramètres : numéro de la page et sa taille.
On passe à la méthode pageNum-1 pour correspondre entre la page résultat et l’affichage.
A. Ajroud 1 1MPSWM ISITCOM (22/23)
Puis on retourne la page des films avec l’appel de la variante de findAll().
Dans le contrôleur FilmController, on va ajouter une action qui traite une requête HTTP
envoyé par get ayant un paramètre dans le path correspondant au numéro de la page à
afficher (on va fixer le nombre des films par page à 4 par exemple) :
Le contenu de la page des entités Film sera affiché dans la même vue affiche. On transmet à
cette vue le numéro de la page courante pour effectuer certains contrôles.
Cette méthode devrait initialiser l’affichage des Films avec une première page (1), donc
l’action all sera modifié comme suit :
Ajouter dans a l’intérieur de la balise span, un test portant sur la condition si i est différent
de currentPage alors il sera un lien hypertexte pointant sur l’action ajoutée dans le
contrôleur, sinon il sera affiché comme un simple texte.
Dans cette méthode on affecte, dans une référence de type Classe Sort, le résultat du tri
selon sa direction. Ce résultat sera ajouté comme argument à la méthode statique of de
PageRequest.
Un exemple d’URL qui fera référence sur la pagination et le tri aura la forme suivante :
/page/1?sortField=titre&sortDir=asc
Ici on demande la page 1 des Films qui sont trié selon l’attribut titre ascendant.
sortField et sortDir sont passés comme paramètres dans la requête.
De ce fait, l’action dans le contrôleur FilmController subira les modifications suivantes :
L’action all qui initialisera la pagination et le tri sera modifié comme suit :