[Spring JPA ] - 글목록 페이징 처리- 11

JEONG SUJIN·2022년 11월 26일
0

스프링부트 JPA

목록 보기
12/24

컨트롤러에서 파라미터에 PageableDefault()를 추가한다.

BoardController.java

@GetMapping({"","/"})
	//메인페이지로 갈때 데이터를 가져가야한다.
	public String index(Model model, @PageableDefault(size=2, sort="id", direction=Sort.Direction.DESC) Pageable pageable) {
		model.addAttribute("boards", boardService.boardList(pageable));
		return "index"; //viewResolver 작동 
	}

return "index" 부분이 pageable를 담을건데,

BoardController에서 서비스로 들어가서 글목록을 호출할때 findAll()로 호출하는데,
이때 특정페이지로 호출할 수 있다.

BoardService.java

List<> -> Page<> 로 변경

	//글 목록리스트
    @Transactional(readOnly=true)
	public Page<Board> boardList(Pageable pageable) {	
		return boardRepository.findAll(pageable);
	}

index.jsp

<c:forEach var="board" items="${boards.content}">
		<div class="card">

			<div class="card-body">

				<h4 class="card-title">${board.title}</h4>
				<p class="card-text">${board.content}</p>
				<p class="card-text">${board.createDate }</p>
				<p class="card-text">${board.user.username }</p>

				<a href="#" class="btn btn-dark">상세보기</a>
			</div>
		</div>
	</c:forEach>
    
<!-- 페이징처리  -->
	<ul class="pagination justify-content-center">
	
	
		<c:choose>
			<c:when test="${boards.first}">
				<li class="page-item disabled"><a class="page-link"
					href="?page=${boards.number-1}">이전</a></li>
			</c:when>

			<c:otherwise>
				<li class="page-item"><a class="page-link"
					href="?page=${boards.number-1}">이전</a></li>
			</c:otherwise>
		</c:choose>
		
		<c:choose>
			<c:when test="${boards.last}">
				<li class="page-item disabled"><a class="page-link"
					href="?page=${boards.number+1}">다음</a></li>
			</c:when>

			<c:otherwise>
			
			<li class="page-item"><a class="page-link"
					href="?page=${boards.number+1}">다음</a></li>
				
			</c:otherwise>
		</c:choose>
	
	</ul>

    
    

다음 버튼 누르면 이동하고, 이전버튼누르면 잘 이동한다.

profile
기록하기

0개의 댓글