페이징

Spring Framework 2014. 7. 16. 18:05

페이징에 필요한 요소

pageNo

현재 페이지


limitList

한 페이지당 보여줄 글의 개수


block

현재 페이지의 블럭

ex. 현재 페이지가 20페이지면 블럭은 두번째 블럭

[11][12][13][14][15][16][17][18][19][20] <- 2번째 블럭


limitPage

한 블럭에 보여줄 페이지의 개수


totalCount

총 레코드의 개수


페이징 하기

현재 상태

pageNo = 1;

block = 1;

totalCount = 100;

limitList = 10;

limitPage = 10;


1. 현재 페이지에서 현재 블럭 구하기

block = ceil(pageNo/limitPage);

* ceil 올림 함수

2. 현재 블럭의 시작 페이지와 끝 페이지

// 시작 페이지 - 1블럭일때 1, 2블럭일때 11

startPage = (block-1)*limitPage + 1;

// 끝 페이지 - 마지막 블럭에서 페이지가 총 페이지 수 보다 커지면 안됨

endPage = startPage + limitPage - 1;

if(endPage > totalPage) endPage = totalPage;

3. 총 페이지 수 구하기

totalPage = ceil(totalCount/limitList);

4. 페이지 출력하기

for (i = startPage; i <= endPage; i++) {

if(pageNo == i) i //진하게 출력하기

else i    // 나머지들은 그냥 출력

}

5. 블럭 이동

[prev] 1 2 3 4 5 6 7 8 9 10 [next]

// 현재의 블럭이 최소 블럭인지 검사

if(block <= 1) "";

else [prev];

// 현재의 블럭이 마지막 블럭인지 검사

totalBlock = ceil(totalPage/limitPage);

if(block >= totalBlock) "";

else [next];

6. DB에서 가져오기

select * from board order by no desc limit start, limitList;

// startRow와 limitList를 설정해 주어야함.

startRow = (page -1) * limitList;


가상 글 번호 뿌려주기

<c:forEach items="${board_list}" var="list" varStatus="status">

<c:out value="${총글개수-((현재페이지번호-1)*페이지당글개수+status.index)}"</c:out>

</c:forEach>


출처 : http://freesearch.pe.kr/archives/21

'Spring Framework' 카테고리의 다른 글

log4jdbc-remix 설정  (0) 2014.08.01
jstl fn 문자열 함수  (0) 2014.07.28
스마트 에디터  (0) 2014.07.22
[Mybatis] XML 파일에 부등호 포함 쿼리 넣을 때 주의점.  (0) 2014.07.07
페이징 로직  (0) 2014.07.07
Posted by 스트라
,