Logique du numéro de page et code de référence (java)

■ 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. image.png

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. image.png

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. image.png

■ 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

Logique du numéro de page et code de référence (java)
Types de données de base et types de référence (Java)
Mécanisme de référence Java (pile et tas)
Nouvelles fonctionnalités de Java 9 et exemple de code
Java passe par valeur et passe par référence
A propos des types primitifs et des types de référence Java
Types de données de base et types de référence Java
Lier le code Java et C ++ avec SWIG
Exécuter du code Java de manière scriptée
java (nombre aléatoire)
CONSEILS relatifs au code Java
Exemple de code Java 02
Exemple de code Java 03
Référence de la méthode Java8
Exemple de code Java 04
Java et JavaScript
XXE et Java
Exemple de code Java 01
Code de caractère Java
référence de la méthode java8
Matériaux de référence JAVA
Ma référence Java
A propos du type de données de base Java et de la mémoire du type de référence
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Java - Sérialisation et désérialisation
timedatectl et Java TimeZone
[Java] Types de variables et types
java (classe et instance)
[java] Nombre de déclin → nombre n-aire nombre n-aire → nombre décimal
[Java] Surcharge et remplacement
Résolution avec Ruby, Perl et Java AtCoder ABC 113 C Reference
Commande pour vérifier le nombre et l'état des threads Java
Comprendre le modèle Singleton en comparant le code Java et JavaScript
Exemple de code pour analyser la date et l'heure avec SimpleDateFormat de Java
[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence
Corrigez le code de caractère en Java et lisez à partir de l'URL
Paramètres de renforcement d'installation et de complétion de code d'Eclipse (développement Mac pour Java)
Comprendre le modèle Iterator en comparant le code Java et JavaScript