게시판 Paging Source Code

Published on: 2009. 9. 6. 19:19 by louis.dev

적용 방법
paging을 하고 싶은 페이지에 업로드 된 paging.jsp를 include 한다.

작업 순서
1. Paging 정보를 가지고 있을 Bean 객체를 만든다. 이 Paging Class는 다음과 같은 property를 가진다. 이와 같은 Paging class는 다른 Bean class에서 상속 받아 사용할 수도 있다


[[ PagingBean.java ]]

① private int nowPage;                // 현재 페이지가 몇페이지 인가를 적용
② private int startNum;                // 게시판이 시작되는 ROW의 Number
③ private int totalCount;               // 게시판 총 페이지 수
④ private int countPerPage;         // 페이지당 보여줄 게시판 리스트 갯수
⑤ private int blockCount;             // paging 갯수를 표현함 예를 들어 blockCount = 5 라면 
                        << [1][2][3][4][5] 다음 >>  -> 다음을 클릭하면
                        << [6][7][8][9][10] 다음 >> -> 이런 식으로 페이징 수가 5개가 된다.
⑥ private String searchColumn;     // 검색할 때 사용, 카테고리 선택
⑦ private String searchWord;         // 검색어


2. 기본적으로 늘 초기화 세팅이 되어 있어야할 countPerPage 라든가 blockCount, startNum을 초기화 세팅해줄 PaingUtil Class를 생성한다.
초기화 세팅하지 않을 util 클래스를 작성하지 않으면 페이징 시에 항상 세팅을 해주어야 한다.
만약 페이징 할 모듈이 많고 각각 다른 세팅값을 가져야 한다면 사용자의 요구에 맞게 static method를 정의해 주고 그 안에 있는 값을 세팅을 각각 맞춰서 해주면 된다.


3. Paging을 할 페이지에 paging.jsp 파일을 다음과 같이 include 시킨다.


<jsp:include page="paging.jsp">
     <jsp:param name="actionPath" value="boardList.jsp"/>
     <jsp:param name="totalCount" value="<%=String.valueOf(paging.getTotalCount()) %>"/>
     <jsp:param name="countPerPage" value="<%=String.valueOf(paging.getCountPerPage()) %>"/>
     <jsp:param name="blockCount" value="<%=String.valueOf(paging.getBlockCount()) %>"/>
     <jsp:param name="nowPage" value="<%=String.valueOf(paging.getNowPage()) %>"/>
 </jsp:include>

물론 이 페이지를 인클루드 시키기 전에 위에 파라미터로 넘겨주는 모든 값은 세팅이 되어 있어야 한다.

페이지의 맨상단에서 다음과 같은 코드로 파라미터로 넘어오는 nowPage를 받아야 한다.
if(request.getParameter("nowPage") == null){
  paging.setNowPage(1);
 }else{
  paging.setNowPage(Integer.valueOf(request.getParameter("nowPage")));
 }

totalCount는
   SELECT COUNT(0) FROM 테이블 명
이런 Query문을 날려서 값을 받아 오는 값을 저장하면 된다.