DAY-58 JSP - 게시판 페이지네이션, 파일 올리기

1 minute read

😺 2022-05-24 / JSP

❗ 수업을 듣고, 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음

1️⃣ 페이징 구현

필요한 목록

  1. 전체 게시글의 개수 // totalCnt
  2. 하나의 페이지에서 총 몇개의 게시글을 띄울 것인가 // recordCntPerPage
  3. 네비바에 몇개 단위로 페이징을 구성할지 // naviCntPerPage
  4. 총 몇개의 페이지가 나올지 // pageTotalCnt

총 페이지의 개수

  • 148개의 게시글을 기준으로 10개씩 페이징을 해준다면 총 15개의 페이지가 나와야한다 → pageTotalCtn = 15;
  • 148 / 10 = 14페이지 +1 = 15 페이지
  • 140 / 10 = 14페이지 +1 = 15 페이지(x) -> 14 페이지여야 한다

값 방지 처리

  • 현재 페이지는 반드시 1이상
  • 현재 페이지는 총 페이지의 개수를 넘어갈 수없다

페이지네이션 숫자 Nav의 시작페이지와 끝 페이지 설정

  • 현재 페이지를 기준으로 네비의 시작페이지, 끝 페이지를 잡을 것
  • 만약 현재 페이지가 3페이지라면 네비의 시작 페이지 = 1 / 네비의 끝 페이지 = 5
  • 만약 현재 페이지가 6페이지라면 네비의 시작 페이지 = 6 / 네비의 끝 페이지 = 10
  • 시작 페이지 = ((현재 페이지 -1) / 페이지 단위 ) * 페이지 단위 + 1

<> 모양을 -> next, prev 모양을 넣어줄지 여부 검사

오라클

데이터를 row_number()을 이용하여 1~10개 11~20개 이런식으로 짤라서 보내줘야한다

→ seq 번호가 큰 번호인게 가장 최신이기 때문에 큰 seq를 큰 순서로 정렬을 해야한다

  • seq_board순으로 orderby 한 row_number에 num이라는 이름으로 치환한다
  • between의 숫자값을 dao에서 ? 로 해줘 값을 setInt로 우리가 설정해준다

게시글의 순위를 매겨서 특정 순위의 데이터 조회

출력 반복문(페이지네이션 번호)

board.jsp / boardController에서 받아온 map 값

board.jsp

  • pageNum 이란 반복문에서 i 와 같은 요소 계속 동적으로 변화
  • begin = 시작페이지 end = 끝 페이지 step = 1 → 하나씩 페이지 이동(즉 하나씩 숫자가 더해짐)
  • li 클릭시 해당 숫자 번호 페이지로 이동

index.jsp

  • 기존의 “/board.bo”;에서 바꿔준다
  • 게시판 목록을 클릭하면 curPage=1 로 defualt되서 넘어간다

2️⃣ 파일 업로드

fileUpload.jsp

  1. input type =”file”
  2. 반드시 post 방식으로 전송
  3. form 태그에 enctype=”multipart/form-data

FileController.java

  • cos 라이브러리 사용
  • MultipartRequest 실제로 파일을 올릴수 있도록 돕는 class

Categories:

Updated:

Leave a comment