게시판 페이징 처리하기
//댓글 갯수에 따른 페이징 처리
/*
~~~~~~
~~~~~~
◀[4][5][6]▶
*/
//[1] 처리에 필요한것 생각해보기
//1. 클릭한 페이지 - 없으면 디폴드값 1페이지로 //예시 5 , 3
int cmtCurrentPage=1;
if(str_cmtCurrentPage!=null && !str_cmtCurrentPage.isEmpty()){
cmtCurrentPage=Integer.parseInt(str_cmtCurrentPage);
}
//2. 페이지숫자 몇개까지 보여줄지 결정(블럭크기) - 3개로 설정
int numOfPagesToShowAtOnce=3;
//3. 한번에 보여줄 댓글수(페이지당 댓글 행 수) - 5개로 설정
int numOfCommentsToShowAtOnce=5;
//4. 총 댓글 갯수
int totalCmt=clist.size(); //예시 31, 16
//[2] 위의 설정된 숫자들로 나머지 필요한 부분 계산
//1. clist에서 한번에 댓글 5개씩 꺼내서 보여줄때 각 행의 시작값 계산
//0, 5, 10, 15...
//5페이지에서 시작값은 ~> 20, 4페이지에서의 시작값은
// ~> 15, 2페이지에서의 시작값은 ~> 5
//(5-1)*5, (4-1)*5 ~> (현재페이지-1)*한번에 보여줄 행수
int clistStartNum
=(cmtCurrentPage-1)*numOfCommentsToShowAtOnce;
//2. clist에서 다 꺼냈을때 마지막 페이지 처리용 숫자 설정
//11=31-20, 마지막 페이지의 경우 1=31-30
//~> 전체 댓글수 - 현재페이지의 행 시작값
int num=totalCmt-clistStartNum;
//3. 현재 페이지 기준으로 첫번째 페이지 숫자와 마지막 페이지숫자계산
//첫번째페이지: 현재페이지-((현재페이지-1)를 블럭크기로 나눈 나머지)
//~> 4 = 5 - ((5-1)%3)
int cmtFirstPage=cmtCurrentPage
-((cmtCurrentPage-1)%numOfPagesToShowAtOnce);
//마지막페이지: 첫번째페이지+블럭크기-1 ~> 6=4+3-1
int cmtLastPage=cmtFirstPage+numOfPagesToShowAtOnce-1;
//4. 전체 페이지수 계산
//전체 댓글수를 한번에 보여줄 댓글수로 나눈 다음
//올림처리하고 정수로 전환
int cmtTotalPages
=(int)(Math.ceil((double)totalCmt/numOfCommentsToShowAtOnce));
'JSP' 카테고리의 다른 글
JSTL - JSP Standard Tag Library (0) | 2017.03.26 |
---|---|
표현언어 (0) | 2017.03.26 |