BoardController의 findById 메서드에 페이징 코드를 추가한다.
[ BoardController ]
@GetMapping("/{id}")
public String findById(@PathVariable Long id, Model model,
@PageableDefault(page=1) Pageable pageable){
/*
해당 게시글의 조회수를 하나 올리고
게시글 데이터를 가져와서 detail.html에 출력
*/
boardService.updateHits(id);
BoardDTO boardDTO = boardService.findById(id);
model.addAttribute("board", boardDTO);
model.addAttribute("page", pageable.getPageNumber());
return "detail";
}
@PageableDefault(page=1) Pageable pageable
page라는 이름의 기본값이 1인 페이지 매개변수를 사용하여 페이지 정보를 받는다.
이 매개변수는 페이지 이동 후 돌아올 페이지 번호를 나타낸다.
model.addAttribute("page", pageable.getPageNumber());
page라는 이름으로 현재 페이지 번호를 모델에 추가하여 뷰로 전달한다.
detail.html 에 listReq 목록 함수를 추가한다.
<button onclick="listReq()">목록</button>
<button onclick="updateReq()">수정</button>
<button onclick="deleteReq()">삭제</button>
</body>
<script th:inline="javascript">
const listReq = () => {
console.log("목록 요청");
const page = [[${page}]];
location.href = "/board/paging?page="+page;
}
const updateReq = () => {
console.log("수정 요청");
const id = [[${board.id}]];
location.href = "/board/update/" + id;
}
const deleteReq = () => {
console.log("삭제 요청");
const id = [[${board.id}]];
location.href = "/board/delete/" + id;
}
</script>
const page = [[${page}]];
서버 측에서 동적으로 생성된 page 값을 가져와서 클라이언트측의 자바스크립트 변수 page에 할당한다.
이 값은 현재 페이지 번호를 나타내며, 페이지 이동 시 함께 전달될 것이다.
location.href = "/board/paging?page="+page;
현재 페이지 번호인 page 변수의 값이 추가된다.
실행 고
http://localhost:8092/board/paging?page=2
id 6번 클릭
목록 클릭
현재 페이지로 돌아왔다.
'Spring Boot' 카테고리의 다른 글
[게시판 만들기 (11)] ajax 댓글 처리 (0) | 2024.01.15 |
---|---|
[게시판 만들기 (10)] 파일 첨부_다중파일 첨부 (0) | 2024.01.15 |
[게시판 만들기 (8)] 게시글 페이징_페이징 화면 처리 (0) | 2024.01.14 |
[게시판 만들기 (7)] 게시글 삭제 (0) | 2024.01.14 |
[게시판 만들기 (6)] 게시글 수정 (0) | 2024.01.14 |