PageMaker.java
페이지 정보
![profile_image](https://dancepkt.cafe24.com/data/member_image/ad/admin.gif?1630310007)
본문
package com.pkt.model;
import lombok.Data;
@Data
public class PageMaker {
private int totalCount; // 총 게시물 수
private int startPage; // 시작 페이지
private int endPage; // 끝 페이지
private boolean prev; // 이전 링크
private boolean next; // 다음 링크
private int displayPageNum = 5; //블럭 갯수
private Criteria cri; // limit 메소드 이용
private void calcData() {
endPage = (int) (Math.ceil(cri.getPage() / (double) displayPageNum) * displayPageNum);
//endPage를 구하고 startPage를 구하는게 여기서는 더 편리하다.
//endPage = 현재 페이지 번호 / 블럭 개수 * 블럭 개수
//현재 페이지가 3 : Math.ceil(3/10) * 10 = 10
//현재 페이지가 1 : Math.ceil(1/10) * 10 = 10
//현재 페이지가 20 : Math.ceil(20/10) * 10 = 20
//현재 페이지가 21 : Math.ceil(21/10) * 10 = 30
startPage = (endPage - displayPageNum) + 1;
//현재 페이지가 21 : startPage = (30 - 10) + 1 = 21
// 마지막 블럭일 경우 계산 처리
int tempEndPage = (int) (Math.ceil(totalCount / (double) cri.getPerPageNum()));
if (endPage > tempEndPage) {
endPage = tempEndPage;
}
prev = startPage == 1 ? false : true; //시작 페이지가 1이 아니라면 true
next = endPage * cri.getPerPageNum() >= totalCount ? false : true;
//endPage = 10 , perPageNum = 10 , totalCount = 101 이라면 next = true 되어야 한다.
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
//위 메소드 호출
calcData();
}
}
- 이전글● 페이징 처리 ③ ( PageMaker.java ) 24.07.30
- 다음글BoardController2.java 24.07.30
댓글목록
등록된 댓글이 없습니다.