요구사항
- 마지막 게시물을 1번으로 시작해서, 글을 삭제해도 건너뜀 없이 글번호가 나올 것.
기존 실행 화면
기존 코드
컨트롤러
@GetMapping("/list")
public String list(Model model,
@PageableDefault(size = 3, sort = "number", direction = Sort.Direction.DESC)
Pageable pageable) {
Page<Board> boards = boardRepository.findAll(pageable);
int startPage = Math.max(1, boards.getPageable().getPageNumber() - 4);
int endPage = Math.min(boards.getTotalPages(), boards.getPageable().getPageNumber() + 4);
model.addAttribute("startPage", startPage);
model.addAttribute("endPage", endPage);
model.addAttribute("boards", boards);
return "board/list";
}
뷰
<tr th:each="board : ${boards}">
<td th:text="${boardStat.index + 1}"></td> //글번호
...
</tr>
수정 방향
max = DB에 있는 모든 데이터 갯수 - 페이지 당 게시글 수 * 페이지번호
수정 후 실행화면
수정 코드
컨트롤러
@GetMapping("/page")
public String list(Model model,
@PageableDefault(size = 3, sort = "number", direction = Sort.Direction.DESC)
Pageable pageable) {
Page<Board> boards = boardRespository.findAll(pageable);
int startPage = Math.max(1,boards.getpageable().getPageNumber() - 4);
int endPage = Math.min(boards.getTotalPages(). boards.getPageable().getPageNumber() + 4);
// 추가된 부분 ========
Long max = boards.getTotalElements() - pageable.getPageSize() * pageable.getPageNumber();
model.addAttriubte("max", max);
// ====================
model.addAttribute("startPage", startPage);
model.addAttribute("endPage", endPage);
model.addAttribute("boards", boards);
return "board/list";
}
뷰
...
<tr th:each="board:${boards}">
<td th:text="${max - boardStat.index }"></td> // 글번호
</tr>
'성동스터디 (2021.09.09 ~ ing) > Spring' 카테고리의 다른 글
[Spring][이클립스] DevTools 동작 안할 때 (0) | 2021.12.29 |
---|---|
[Spring][이클립스] 메이븐 프로젝트 의존성이 안들어올 때 (0) | 2021.12.29 |
[Spring] @RequestBody, @ModelAttribute, BindingResult (0) | 2021.12.28 |
[Spring][Thymeleaf] background-image 사용하기 (0) | 2021.12.28 |
[Spring] 의존성 주입과 IoC컨테이너 (0) | 2021.11.20 |
댓글