2010년 7월 29일 목요일

페이징 로직

//페이지 처리

pageNum = Integer.parseInt(request.getParameter("pageNum")); //현재 페이지

totalRecord = 총 레코드 갯수;

paging = 페이지 당 보여질 게시물 수;

pageingCount = Math.ceil(totalRecord / paging); // 총 페이지 수

start = paging * pageNum; // 페이지의 시작위치

 

//페이지 그룹 처리

pageGroup = 페이지 그룹에 포함될 페이지의 수;

pageGroupNum = Math.ceil((pageNum+1) / pageGroup); // 현재의 페이지 그룹

pageStart = (pageGroupNum - 1) * pageGroup + 1; //페이지 그릅의 첫페이지

pageEnd = pageStart + pageGroup -  1; // 페이지 그룹의 마지막 페이지

 

// 이전 그룹 처리

prevGroup = pageGroupNum - 1; // 이전 그룹

prevStart = (prevGroup - 1) * pageGroup; // 이전 페이지 그룹의 첫페이지

if(pageGroupNum != 1) {

      ?pageNum=prevStart;

}

 

// 페이지 출력

int j = 0;

for(int i = pageStart; i < pageEnd; i++) {

    if(i > pageingCount) break;   

    j = i - 1;

    ?pageNum=j 

}

 

//다음 그룹 처리

nextGroup = pageGroupNum + 1; // 다음 그룹

nextStart = (nextGroup -1) * pageGroup; // 다음페이지 그룹의 첫페이지

if(pageingCount > (nextGroup+1)) {

     ?pageNum=nextStart

}

댓글 없음:

댓글 쓰기