TOTALCOUNT : 총 글의 개수
TOTALPAGE : 총 페이지 수(10개 단위)
CURRENTPAGE : 현재 페이지
FIRST : 첫페이지
LAST : 마지막 페이지
decode(currentPage,0,1,0) first
currentPage가 0이면 1(true)반환, 0이 아니면 0(false)반환
decode(currentPage, totalPage-1,1,0)last
currentPage가 totalPage-1이랑 같으면 1(true)반환, 0이 아니면 0(false)반환
작성한 쿼리문을 boards.xml에 복사해준다.
pagingDto로가서 변수를 변경해준다.
boolean은 변수작성할때 변수명앞에 is를 붙여진다.
템플릿엔진에서는 last,first로 작성하면 찾아진다.
(getter가 만들어지면 islast(),islast()으로 만들어짐 ->el에서는 last,last로 찾는다.)
페이징 메서드를 하나 만들어준다.
금방만든 쿼리를 실행해주는 메서드이다.
paging을 실행해서 model에 담아서 page로 갈것이다.
currentPage는 고정된 값이 아니기때문에
변수값을 지정해준다.
findAll에서 전체데이터(boardsList)가 넘어올때 startNum이 넘어오니까 내가 원하는 것만 가지고온다.
1을 가지고오면 1의 10개, 2를 가지고 오면 2의 10개, 3을 가지고 오면 3의 열개
boardsDao.paging에서 page를 넘겨서 PagingDto를 받았다.
model에 키값이 boardsList,paging이 담긴다.
순서대로 첫페이지, 두번째 페이지, 마지막 페이지
아래박스의 코드가없다면 bootstrap이 적용되지 않는다.
-> 화면의 디자인들이 다깨진다.
페이징 버튼
w3school에서 원하는 디자인예제를 복사해서 mainjsp에 붙여넣어준다.
가지고온 디자인예제를 게시판 버튼에 맞게 수정을 해주었다.
1,2,3페이지를 누르면 각자의 페이지가 나온다.
삼항연산자를 사용하여 first,last가 true이면 disabled이 실행되고 false이면 "" 이 실행한다.
한페이지에 게시글을 3개만 보여줄거기때문에 바꾸어준다.
currentBlock 현재 Block의 수 ex) 1~5 는 1 , 6~10 는 2, 11~15 는 3
blockCount 고정된 값. 한페이지에 페이지 넘버 개수 5
startPageNum 페이지시작 숫자 1 -> 6 -> 11 ,,,
lastPageNum 페이지마지막 숫자 5 -> 10 -> 15,,
한페이지에 게시글 3개씩 보여줄것이기 때문에 3으로 바꾸어준다.
blockCount는 바뀌지 않는 고정값이여서 5로 지정한다.
만약 전체페이지가 마지막페이지 숫자보다 적다면
마지막 숫자는 10이 아니라 전체 페이지까지 나오게한다.
마지막으로 main.jsp변경
마지막 결과물
'Springboot' 카테고리의 다른 글
MariaDB설치 및 스프링부트 연결 (0) | 2022.09.13 |
---|---|
게시판만들기 - delete기능 form태그로 만들기 (0) | 2022.09.12 |
게시판만들기 (0) | 2022.09.06 |
blog 초기세팅 (0) | 2022.09.04 |
db연결(USERS-CRUD) - select,insret,delet,update (0) | 2022.09.01 |