낙서장/Java
페이징 전용 클래스 [PagingBean]
RunTimeException
2021. 8. 19. 12:37
public class PagingBean {
private int nowPage = 1;
private int postCountPerPage = 10;//페이지당 게시물수
private int pageCountPrePageGroup = 5;//페이지 그룹당 페이지수
private int totalPostCount;//총 게시물수
public PagingBean(int totalPostCount) {
super();
this.totalPostCount = totalPostCount;
}
public PagingBean(int totalPostCount ,int nowPage) {
super();
this.nowPage = nowPage;
this.totalPostCount = totalPostCount;
}
//현 페이지 번호
public int getNowPage() {
return nowPage;
}
//현 페이지 시작 게시물 번호 [(현 게시물 번호-1) * 페이지당 게시물]
public int getStartRowNumber() {
return (nowPage-1) * postCountPerPage + 1;
}
//현 페이지 끝 게시물 번호 [현 게시물 번호 * 페이지당 게시물] --> 총 게시물 수 보다 크면 총 게시물 수 반환
public int getEndRowNumber() {
return nowPage * postCountPerPage>totalPostCount ? totalPostCount : nowPage * postCountPerPage;
}
//총 페이지 수 [총 게시물수/페이지당 게시물] --> 나머지 값이 0 아니면 +1 해준다.
public int getTotalPage() {
return totalPostCount%postCountPerPage==0 ? totalPostCount/postCountPerPage : totalPostCount/postCountPerPage+1;
}
//총 페이지 그룹 수 [총 페이지 수/ 그룹당 페이지수] --> 나머지 값이 0 아니면 +1 해준다.
public int getTotalPageGroup() {
return getTotalPage()%pageCountPrePageGroup==0 ? getTotalPage()/pageCountPrePageGroup : getTotalPage()/pageCountPrePageGroup+1;
}
//현 그룹 [현 페이지 / 그룹당 페이지수] --> 나머지 값이 0 아니면 +1 해준다.
public int getNowPageGroup() {
return nowPage%pageCountPrePageGroup==0 ? nowPage/pageCountPrePageGroup : nowPage/pageCountPrePageGroup+1;
}
//현 그룹 시작 페이지 번호 [(현 그룹-1) * 그룹당 페이지수]
public int getStartPageOfPageGroup() {
return (getNowPageGroup()-1) * pageCountPrePageGroup+1;
}
//현 그룹 끝 페이지 번호 [현 그룹 * 그룹당 페이지수] --> 총 페이지 그룹 수 보다 크면 총 페이지 그룹 수 반환
public int getEndPageOfPageGroup() {
return getNowPageGroup() * pageCountPrePageGroup>getTotalPage() ? getTotalPage() : getNowPageGroup() * pageCountPrePageGroup;
}
//이전: 현그룹이 1보다 크면 true 반환
public boolean isPreviousPageGroup() {
return getNowPageGroup()>1;
}
//다음: 현 그룹이 총 페이지 그룹보다 작으면 true 반환
public boolean isNextPageGroup() {
return getNowPageGroup()<getTotalPageGroup();
}
}