본문 바로가기

국비

01.26 국비학원 79일차 (게시글-목록페이지)

Paging의 setPageList() 메서드 변경 → 활성화 페이지가 가운데에 배치되도록 함

 

 

<<공지사항 있는 게시글 페이지 만들기>>

  ▶웹 페이지 기능 구현 순서  (순서는 절대적인 것이 아니라 숙련도에 따라 작업하면 된다)

   1. 구현하는 기능에 필요한 데이터베이스 테이블 구조를 먼저 작성한다.

   2. 생성된 테이블에 초기 데이터를 추가한다.

   3. 구현 기능에 필요한 페이지를 나열한다.

          - 목록 페이지 : 테이블에 저장된 전체 데이터를 조회하여 보여주기 위한 페이지. 페이징 처리를 통해 일부만 출력

          - 상세 페이지 : 특정 데이터를 상세하게 보여주기 위한 페이지

          - 추가 페이지 : 데이터를 추가할 수 있는 폼(form)을 제공하는 페이지

          - 수정 페이지 : 데이터를 수정할 수 있는 폼(form)을 제공하는 페이지

          - 삭제 페이지 : 삭제할 데이터를 확인 후 삭제를 진행하도록 하는 페이지 (페이지 없이 삭제 기능으로 구현 가능)

       * 위의 모든 페이지를 반드시 구현해야 하는 것이 아니라 필요에 따라 선택할 수 있다.

   4. 구현 기능에 필요한 페이지를 다음의 순서로 구현한다.

             목록 → 상세 → 추가 → 수정 → 삭제

 

  • 1 - 테이블 구조 작성

btype = N -> 공지사항, btype = B -> 일반게시글

  • 2 - 테이블에 초기 데이터 추가

초기 데이터 여러개 작성

  • 3 - 필요한 페이지 나열

  • 4 - 목록 페이지 구현

controller. request객체에서 p 데이터 추출하여 pageNumber 로 설정
쿠키를 활용하여 사용자가 select 한 pageLimit 값을 쿠키로 저장. 쿠키를 사용하지 않으면 사용자가 선택한 페이지 목록 수 데이터를 페이지가 바뀔 때마다 계속해서 따로 설정해야함. 기존 쿠키가 있을 때,없을 때/ 파라미터 값이 있을 때,없을 때 의 경우를 나눠서 본다.

req.getParameter() 로 얻은 pageNumber 와 pageLimit 을 service 의 getPage() 메서드로 보내 Paging 객체 data 로 저장.

req.setAttribute("paging",data) 로 위의 data 값을 가지는 "paging" 속성 생성

controller 에서 전달받은 pageNumber, pageLimit으로 map 에 <"start":"value">, <"end":"value"> 데이터 추가. 저장된 map 데이터 질의하여 해당되는 범위의 (id, btype, title, writer, createDate, viewCnt) 정보 조회하여 List<BoardDTO> data 로 저장.

게시글 정보 담은 data 와 pageNumber, lastPageNumber, pageLimit, 5(설정값) 으로 paging 클래스 초기화

(여기서 return 되는 paging이 서블릿에서 service.getPage(pageNumber, pageLimit) 의 반환값이다. data 에 저장했었음. 이 data 는 setAttribute로 "paging"이란 속성의 속성값이다.)

dao
쿼리문

JSP

pageLimit 선택 옵션 반복문
저장된 게시글 목록 정보 가져오기
페이징 목록