Board- 페이지 네이션
BoardDAO
final int BOARD_COUNT = 10; 상수처리 해주고
?가 두개이니 ? 두개 넣어줍니다.
BoardDTO
5 /20 => 10으로 변경
실행 해보면
이 DTO를 버튼으로 바꿔주면 됩니다.
boardlist.jsp
먼저 위에 부트스트랩 주소를 넣습니다.
document의 pagination 파트를 보고 1부터 10까지 나열합니다.
copy를 눌러 복사를 해주시고,
수정 해줍니다.
실행해보면
확인할수 있다.
반복문으로 바꿀꺼라서 하나 빼고 다지워줍니다.
(<c:forEach var="pageIndex" begin="{끝번호}">)
<c:forEach var="pageIndex" begin="{dto.endPage}">
<li> class="page-item"><a class ="page-link" href="#">${pageIndex}</a></li>
</c:forEach>
실행 해보면
DTO에서 가져왔기 때문에 dto.startPage/ dto.endPage 이고,
pageIndex는 앞에서 명칭을 페이지인덱스로 했기 때문에(var = pageIndex) dto가 안붙는다.
부트스트랩 없이 만들때에는
실행
<c:forEach var="pageIndex" begin="{dto.endPage}">
<li> class="page-item"><a class ="page-link" href="#">${pageIndex}</a></li>
</c:forEach>
.# 부분에 http://localhost:8181/MyFirstWeb/boardList.do?pageNum= 에다가
${pageIndex}> 를 붙이면
페이지가 클릭이 된다.
부트스트랩 없이 만들때에는
위에랑 똑같이 주솔르 붙여주면 됩니다.
실행 해보면
======이전페이지=======
이전페이지 같은 경우 1페이지는 전 페이지가 필요없습니다.
startPage이가 나머지인 경우만 필요
첫번째 방법
<c:if test = "${dto.startPage ne 1}"> (startPage가 1이 아니라면 disable안걸린거)
<li class="page-item"><a class="page-link" href="#">«</a></li>
</c:if>
두번째 방법
<c:if test ="${dto.startPage eq 1}"> (1이면 disable 걸린거)
li class="page-item disable">«
</c:if>
실행
1페이지에선 << 이게 안눌린다.
좀 더 깔끔하게 disable 해주면
부트스트랩 없이 만들기
ㄴ dto.startPage가 1 이 아니라면
실행 해보면
Prev를 누르면 10페이지씩 가지고 첫페이지에서는 안된다.
=====다음페이지 처리=====
부트스트랩 없이 만들기
전체 페이지와 마지막 페이지가 같지 않을때만 표시
currentPage
<c:if test="{pageIndex}">[${pageIndex}]
</c:if>
(dto.currentPage 와 pageIndex이 같으면 active를 추가로 붙여주겠다.)
이상태로 진행하면 에러가 뜸
이유는
private 이기 떄문
다른 것들은 호출이 가능 했던 이유는
getter로 변수로 호출했기 때문
BoardDTO
${dto.currentPage}와 같은 형태로 자료를 EL문법으로 얻어와 활용하기 위해 getter가 필요합니다.
currentPage에 대한 getter를 생성해줍니다.
실행해보면
선택한 페이지의 파랑색이 잘 들어옵니다.
부트스트랩 없이 만들기
<for내부에 작성>
<c:if test="{pageIndex}">[${pageIndex}]
</c:if>
(currentpage 가 pageIndex 같다면) 볼드 처리
실행 해보면
잘 확인이 된다.
Author And Source
이 문제에 관하여(Board- 페이지 네이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@one_2s/Board-페이지-네이션저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)