■ Table des matières 1, au début 2, logique de numéro de page 3, exemple de code
■ Présentation Quand j'ai fait un site de recherche, j'ai mis beaucoup de temps à afficher le numéro de page, donc je le posterai pensée. J'apprécierais que vous y fassiez référence. (Puisqu'il s'agit d'un exemple, merci de me faire savoir s'il y a une amélioration ou un meilleur code)
■ Logique des numéros de page
Lorsque la page est 1, les nombres jusqu'à 5 sont affichés et "..." est affiché entre les deux pour afficher le dernier nombre.
Lorsque le numéro de page est égal ou supérieur à 5, la première page, les deux premiers numéros de page, les deux derniers et le dernier numéro s'affichent.
Si la page est (dernière page-3), la première page, la dernière page et la page précédente sont affichées.
■ Exemple de code (jsp) Le href de la balise a est le code sans le lien. Je n'ai aucun sens pour nommer les variables et les constantes, alors faites-le moi savoir si vous avez un bon nom.
<%
//Nombre de pages / Déclaration de variable de la page courante
int currentPage;
int lastPageNum;
//Affectation des variables
currentPage = 5;
lastPageNum = 9;
//Déclaration constante
final int FIRST_PAGE = 1;
final int FIRST_HALF_CHECK = 5;
final int LAST_HALF_CHECK = 4;
final int BEFORE_AND_AFTER = 2;
%>
<section>
<div class="pageLeft">
<%if(currentPage != FIRST_PAGE){ %>
<a href="">Vers la page précédente</a>
<%} %>
</div>
<div class="pageCenter">
<%if(currentPage >= FIRST_HALF_CHECK){ %>
<a href="">1</a>
…
<%} %>
<%if(currentPage < FIRST_HALF_CHECK){ %>
<%for(int i = 1; i <= FIRST_HALF_CHECK; i++){ %>
<%if(i <= lastPageNum){ %>
//Choisissez d'inclure une balise ou non (actuellement la page n'inclut pas de balise)
<%if(i == currentPage){ %>
<span><%=i %></span>
<%}else{ %>
<a href=""><%=i %></a>
<%} %>
<%} %>
<%} %>
<%}else if(lastPageNum - currentPage < LAST_HALF_CHECK){ %>
<%for(int i = lastPageNum - LAST_HALF_CHECK; i <= lastPageNum; i++){ %>
<%if(i > 0){ %>
//Choisissez d'inclure une balise ou non (actuellement la page n'inclut pas de balise)
<%if(i == currentPage){ %>
<span><%=i %></span>
<%}else{ %>
<a href=""><%=i %></a>
<%} %>
<%} %>
<%} %>
<%}else{ %>
<%for(int i = currentPage - BEFORE_AND_AFTER; i <= currentPage + BEFORE_AND_AFTER; i++){ %>
//Choisissez d'inclure une balise ou non (actuellement la page n'inclut pas de balise)
<%if(i == currentPage){ %>
<span><%=i %></span>
<%}else{ %>
<a href=""><%=i %></a>
<%} %>
<%} %>
<%} %>
<%if(lastPageNum - currentPage >= LAST_HALF_CHECK){ %>
…<a href=""><%=lastPageNum %></a>
<%} %>
</div>
<div class="pageRight">
<%if(currentPage != lastPageNum){ %>
<a href="">à la page suivante</a>
<%} %>
</div>
</section>
■ Résumé Je l'ai écrit parce que je suis resté coincé dans la logique des numéros de page une fois sur le site de recherche. Je pense qu'il existe de meilleures façons et des améliorations, alors je vous serais reconnaissant si vous pouviez me le faire savoir.
Recommended Posts