스프링부트 강좌 55강(블로그 프로젝트) - 글목록 페이징하기
글 목록을 호출할때 findAll을 호출한다. 이때 특정 페이지를 호출할 수 있다. @Pageable를 받아서 !!
// 한페이지당 2건에 데이터를 리턴받아 볼 예정
@GetMapping("/dummy/user")
public List<User> pageList(@PageableDefault(size=1, sort="id", direction = Sort.Direction.ASC) Pageable pageable){
Page<User> pagingUser = userRepository.findAll(pageable);
List<User> users = pagingUser.getContent();
return users;
}
이것을 이용하여 페이징을 해보도록 하자.
Page를 넘기면 Page로 리턴받음. 그래서 getContent라고 하면 List로 받을 수 있다.
localhost:8000/dummy/user 를 입력하면 이와 같이 나온다.
@GetMapping("/dummy/user")
public Page<User> pageList(@PageableDefault(size=1, sort="id", direction = Sort.Direction.ASC) Pageable pageable){
Page<User> pagingUser = userRepository.findAll(pageable);
List<User> users = pagingUser.getContent();
return pagingUser;
}
하지만 List가 아닌 Page로 설정하고 pagingUser을 리턴하면 어떻게 나올까?
다음과 같이 나온다.
우리는 리스트가 아니지라 페이지를 넘겨보자. 그래야 pagable 값들을 가져올 수 있기 때문이다. 이 값을 통해 첫번째 페이지인지 마지막 페이지인지를 알 수 있다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ include file="layout/header.jsp"%>
<div class="container">
<c:forEach var="board" items="${boards.content}">
<div class="card m-2">
<div class="card-body">
<h4 class="card-title">${board.title}</h4>
<a href="#" class="btn btn-primary">상세보기</a>
</div>
</div>
</c:forEach>
</div>
<%@ include file="layout/footer.jsp"%>
boards.content 컨텐트를 적어줘야 오류가 나지 않을 것이다.
http://localhost:8000/?page=0
http://localhost:8000/?page=1
http://localhost:8000/?page=2
에 따라 최신 글 목록을 확인할 수 있다.
justify-content-center css 속성 중 가운데로 옮겨줌...(flex 기반일 때)
완료!!!
-이 글은 유투버 겟인데어의 스프링 부트 강좌를 바탕으로 정리한 내용입니다.-