📌Zero-base
페이지네비게이션 구현 제로베이스 백엔드 스쿨 깜짝과제 3번
구 일
2024. 5. 13. 15:38
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
반응형