2011-10-07 4 views
3

J'ai un modèle Freemarker affichant une liste de choses, maintenant je veux ajouter de la pagination.Comment faire la pagination en utilisant Freemarker et Spring?

J'ai modifié le code côté serveur afin que je puisse mettre dans le formulaire de sauvegarde le numéro de page (par défaut 1) et la taille de la page (par défaut 20) avec un tas de paramètres de requête. Le contrôleur va gérer cela correctement et retourner la liste des choses, le numéro de la page et le numéro de la dernière page dans le modèle.

Mais ce que je ne sais pas (comme je l'ai pas fait beaucoup de choses de la couche web avant) est ce qu'il faut faire dans le modèle afin que l'utilisateur peut cliquer sur suivant/précédent/page 3 etc.

le modèle a actuellement:

<button type="submit" id="searchButton">Search</button> 

Je suppose que je pourrais ajouter des boutons pour chacune des actions, mais comment pourrais-je détecter puis dans le contrôleur a été cliqué sur quel bouton?

Vive Paul

Répondre

0

Vous pouvez ajouter un événement onClick sur les boutons (ou A HREF liens) dans votre modèle, liés à un peu de Javascript qui définit une valeur pour un élément caché dans la page. Cet élément (disons ACTION) contiendrait la valeur du bouton sur lequel vous avez cliqué (NEXT ou PREVIOUS), de sorte que du côté serveur, le contrôleur peut faire la bonne chose en fonction de la valeur de ACTION.

form.elements["ACTION"].value = 'NEXT' 

Ou qui pourrait aussi être un élément PAGE, qui détient le nombre cible de la page (si vous voulez permettre une liaison directe à toutes les pages)

Donc, si vous êtes actuellement à la page 4:

form.elements["PAGE"].value = '5' // for the 'NEXT' button 
form.elements["PAGE"].value = '3' // for the 'PREVIOUS' button 
+0

Ceci fonctionne: page1

Questions connexes