본문 바로가기
[ Developer ]/Web - Servlet JSP

[JSP Web] 게시판 목록 페이징 Board Paging

by 김현섭. 2016. 6. 2.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Paging
게시글의 갯수를 보이고 페이지로 분류한다
페이징을 구현하기 위해선 캡슐화가 필요하다
구현하기 위해서 필요한 것은 1 현재 페이지의 번호 2 그 페이지의 게시물

만약 1개의 페이지에는 3개의 게시물이 필요하고 1개의 페이지 그룹에는 2개의 페이지가 필요하다
그렇다면 15개의 게시물이 있을 때 5개의 페이지가 나오게 된다
페이지 그룹은 3개의 그룹이 필요하게 된다

우선 VO에서 ArticleListVO를 생성한다
List를 갖는 ArticleList와 추가로 가져온 Paging을 속성으로 갖는다

ArticleListVO


ArticleList를 출력하는 Servlet에서 객체 타입을 바꿔준다

ArticleListServlet


ArticleBiz에서 실질적으로 리스트를 불러오므로 리스트를 생성해서 
출력할 리스트를 넣는다

ArticleBiz


그러나 Biz에서 몇개를 출력할지 하나의 페이지에는 몇개가 구성될지가 안 구해졌으니
전체 페이지 카운트를 가져오는 변수를 하나 생성한다
Paging 객체를 선언(기본값 페이지 10개)해서 Paging에 전체 개수를 넣는다
또한 몇 페이지부터 시작할 것인가를 "0" (1번 페이지 그룹)으로 설정한다


setTotalArticleCount를 보내면 몇 페이지가 있는지가 검색이 된다

# 페이징 순서
  1. 전체 게시물 개수 세팅
  2. 보여줄 페이지 정보를 세팅
  3. DAO 전달
  4. DAO에서 접근해서 가져온 결과를 ArticleList 세팅

이젠 ArticleSearchVO라는 VO를 생성 후 
몇 가지의 속성을 정의한다


그리고 난후 다시 ArticleBiz에서 List를 출력하는 메소드로 와서 수정을 한다

ArticleBiz


ArticleDAO List 출력 메소드


ArticleDAO


query


query List 출력 쿼리



위의 쿼리 XML문서이기 때문에 오류가 발생하는데
아래와 같이 변경해주면 된다


위의 표현식이 보기 어렵다면 아래와 같이도 표기가 가능하다


한번 더 걸러준다


쿼리에서 ROWNUM 관련해서 2개인데


전체적으로 큰 것이 시작 번호이고 그 안쪽 ROWNUM이 가져올 마지막 INDEX이다