728x90

/**
* 페이지네비게이션 구현
*
* @author : 이희영
*/
public class Page {
/**
* 페이지 클래스
*/
static class Pager {
long totalCount; // 전체 개시글 수
long totalPage; // 전체 페이지
int pageSize = 10; // 페이지네비게이션에서 보여주는 블럭 수
public Pager(long totalCount) {
this.totalCount = totalCount;
}
/**
* 페이지네이션 코드 생성
*
* @param pageIndex 선택한 페이지 번호
* @return 페이지네이션 a태그 코드
*/
public String html(long pageIndex) {
StringBuilder sb = new StringBuilder();
totalPage = (long) Math.ceil((double) totalCount / 10);
int pageStart = pageIndex <= 10 ? 1 : (int) (pageIndex / 10) * 10 + 1; // 페이지네이션 블럭 시작 페이지
int pageTmp = pageStart + pageSize - 1;
int pageEnd = pageTmp < totalPage ? pageTmp : (int) totalPage; // 페이지네이션 블럭 끝 페이지
sb.append("<a href='#'>[처음]</a>\n");
sb.append("<a href='#'>[이전]</a>\n");
sb.append("\n");
for (int i = pageStart; i <= pageEnd; i++) {
if (i == pageIndex) {
sb.append("<a href='#' class='on'>").append(i).append("</a>\n");
} else {
sb.append("<a href='#'>").append(i).append("</a>\n");
}
}
sb.append("\n");
sb.append("<a href='#'>[다음]</a>\n");
sb.append("<a href='#'>[마지막]</a>\n");
return sb.toString();
}
}
public static void main(String[] args) {
long totalCount = 127;
long pageIndex = 1;
Pager pager = new Pager(totalCount);
System.out.println(pager.html(pageIndex));
}
}

728x90
'📌Zero-base' 카테고리의 다른 글
| 가장 가까운 좌표 출력 프로그램 제로베이스 백엔드 스쿨 깜짝과제 2번 (0) | 2024.05.13 |
|---|---|
| property.html 파일 만드는 코드 작성하기 제로베이스 백엔드 스쿨 깜짝과제 1번 (0) | 2024.05.13 |
| 백엔드 신입 개발자가 쌓아야 하는 역량은? 제로베이스 백엔드스쿨 (0) | 2024.05.01 |
| Java 람다식, 스트림 (0) | 2024.04.29 |
| 코딩테스트 힌트 문제 풀기 2 (프로그래머스, 백준) 자바 (1) | 2024.04.29 |