게시판 페이지 만들기
iv 선언
private int totalCnt; //총 개시물 개수
private int pageSize; //한 페이지의 크기
private int naviSize = 10; //페이지 네비게이션의 크기
//전체 게시물 수(totalCnt)에서 한 페이지의 게시물 수(pageSize)를 나눠서 올림.
private int totalPage; //전체 페이지의 개수.
private int page; //현재 페이지
//현재페이지(page)를 네비게이션 크기(naviSize)로 나누고,
//다시 네비게이션 크기를 곱해서 1의자리수를 0으로 만들고, 1을 더한다.
private int beginPage; //네비게이션의 첫번째 페이지.
//beginPage에 네비게이션 크기(naviSize)를 더하고 1을 뺀 값과,
//총 페이지 수(totalPage) 중에 작은 것을 구한다.
private int endPage; //네비게이션의 마지막 페이지
//beginPage가 1이 아니면 true로 한다.
private boolean showPrev; //이전 페이지로 이동하는 링크를 보여줄 것인지의 여부
//endPage가 totalPage가 아니면 true로 한다.
private boolean showNext; //다음 페이지로 이동하는 링크르 보여줄 것인지의 여부
생성자
public PageHandler(int totalCnt, int page) {
this(totalCnt, page, 10);
}
public PageHandler(int totalCnt, int page, int pageSize) {
this.totalCnt = totalCnt;
this.page = page;
this.pageSize = pageSize;
totalPage = (int)Math.ceil(totalCnt / (double)pageSize);
beginPage = (page-1) / naviSize * naviSize + 1;
endPage = Math.min(beginPage + naviSize - 1, totalPage);
showPrev = beginPage != 1;
showNext = endPage != totalPage;
}
Getter & Setter
PageHandler.java
package com.fastcampus.ch4.domain;
public class PageHandler {
private int totalCnt; //총 개시물 개수
private int pageSize; //한 페이지의 크기
private int naviSize = 10; //페이지 네비게이션의 크기
private int totalPage; //전체 페이지의 개수
private int page; //현재 페이지
private int beginPage; //네비게이션의 첫번째 페이지
private int endPage; //네비게이션의 마지막 페이지
private boolean showPrev; //이전 페이지로 이동하는 링크를 보여줄 것인지의 여부
private boolean showNext; //다음 페이지로 이동하는 링크르 보여줄 것인지의 여부
public PageHandler(int totalCnt, int page) {
this(totalCnt, page, 10);
}
public PageHandler(int totalCnt, int page, int pageSize) {
this.totalCnt = totalCnt;
this.page = page;
this.pageSize = pageSize;
totalPage = (int)Math.ceil(totalCnt / (double)pageSize);
beginPage = (page-1) / naviSize * naviSize + 1;
endPage = Math.min(beginPage + naviSize - 1, totalPage);
showPrev = beginPage != 1;
showNext = endPage != totalPage;
}
void print() {
System.out.println("page = " + page);
System.out.print(showPrev ? "[PREV] " : "");
for (int i = beginPage; i <= endPage; i++) {
System.out.print(i + " ");
}
System.out.println(showNext ? " [NEXT]" : "");
}
public int getTotalCnt() {
return totalCnt;
}
public void setTotalCnt(int totalCnt) {
this.totalCnt = totalCnt;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getNaviSize() {
return naviSize;
}
public void setNaviSize(int naviSize) {
this.naviSize = naviSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getBeginPage() {
return beginPage;
}
public void setBeginPage(int beginPage) {
this.beginPage = beginPage;
}
public int getEndPage() {
return endPage;
}
public void setEndPage(int endPage) {
this.endPage = endPage;
}
public boolean isShowPrev() {
return showPrev;
}
public void setShowPrev(boolean showPrev) {
this.showPrev = showPrev;
}
public boolean isShowNext() {
return showNext;
}
public void setShowNext(boolean showNext) {
this.showNext = showNext;
}
@Override
public String toString() {
return "PageHandler{" +
"totalCnt=" + totalCnt +
", pageSize=" + pageSize +
", naviSize=" + naviSize +
", totalPage=" + totalPage +
", page=" + page +
", beginPage=" + beginPage +
", endPage=" + endPage +
", showPrev=" + showPrev +
", showNext=" + showNext +
'}';
}
}