728x90
페이지 블럭 출력하기
nowPage: 현재 페이지
startPage: 블럭에서 보여줄 시작 페이지
endPage: 블럭에서 보여줄 마지막 페이지
boardlist.html에 다음 내용을 추가
</table>
<th:block th:each="page : ${#numbers.sequence(startPage, endPage)}">
<a th:if="${page != nowPage}" th:href="@{/board/list(page = ${page - 1})}" th:text="${page}"></a>
<strong th:if="${page == nowPage}" th:text="${page}" style="color : red"></strong>
</th:block>
</div>
</body>
</html>
페이지 블럭에 보이는 페이지가 현재 페이지와 다르다면 /board/list로 보낼 때 페이지를 -1하고,
페이지 블럭에 보이는 페이지가 현재 페이지와 같다면 눌렀을 때 서체와 색상을 강조
컨트롤러에 페이징 코드 추가
@GetMapping("/board/list")
public String boardList(Model model, @PageableDefault(page = 0, size = 10, sort = "id", direction = Sort.Direction.DESC) Pageable pageable) {
Page<Board> list = boardService.boardList(pageable);
int nowPage = list.getPageable().getPageNumber() + 1; // pageable이 가지고 있는 페이지는 0부터 시작하기때문에 1을 더함
int startPage = Math.max(nowPage - 4, 1); // 1보다 작은 경우는 1을 반환
int endPage = Math.min(nowPage + 5, list.getTotalPages()); // 전체 페이지보다 많은 경우는 전체 페이지를 반환
model.addAttribute("list", list);
model.addAttribute("nowPage", nowPage);
model.addAttribute("startPage", startPage);
model.addAttribute("endPage", endPage);
return "boardlist";
}
1페이지에서 3을 누르면 넘어가는 것을 확인할 수 있다.
728x90
'스프링 부트 > [스프링 부트] 게시판 무작정 따라하기' 카테고리의 다른 글
[스프링 부트] 게시판 무작정 따라하기 - 11. 검색 기능 2편 (0) | 2023.03.13 |
---|---|
[스프링 부트] 게시판 무작정 따라하기 - 10. 검색 기능 1편 (0) | 2023.03.13 |
[스프링 부트] 게시판 무작정 따라하기 - 8. 페이징 처리 1편 (0) | 2023.03.13 |
[스프링 부트] 게시판 무작정 따라하기 - 7. 파일 업로드 (0) | 2023.03.13 |
[스프링 부트] 게시판 무작정 따라하기 - 6. 메시지 띄우기 (0) | 2023.03.13 |