전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (174)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Springboot/블로그만들기

[Springboot] 블로그 만들기 (27)_글 목록 페이징 처리

2023. 12. 1. 13:50

먼저 페이징 처리를 하기 전에 글을 여러개 만들어주자

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ 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>
				<!-- board.getTitle 호출 -->
				<a href="#" class="btn btn-primary">상세보기</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}">Previous</a></li>
			</c:when>
			<c:otherwise>
				<li class="page-item"><a class="page-link" href="?page=${boards.number - 1}">Previous</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}">Next</a></li>
			</c:when>
			<c:otherwise>
				<li class="page-item"><a class="page-link" href="?page=${boards.number + 1}">Next</a></li>
			</c:otherwise>
		</c:choose>
	</ul>

</div>

<%@ include file="layout/footer.jsp"%>

 

BoardController.java

@GetMapping({"","/"})
public String index(Model model, @PageableDefault(page=1, size=5, sort="id", direction = Sort.Direction.DESC) Pageable pageable) { // boards를 model객체로 만들어서 index로 던짐
    model.addAttribute("boards", boardService.글목록(pageable));
    // /WEB-INF/views/index.jsp
    return "index"; // viewResolver 작동 !!
}

 

BoardApiController.java

@RestController
public class BoardApiController {
	
	@Autowired
	private BoardService boardService;
	
	@PostMapping("/api/board")
	public ResponseDto<Integer> save(@RequestBody Board board, @AuthenticationPrincipal PrincipalDetail principal) {
		boardService.글쓰기(board, principal.getUser());
		return new ResponseDto<Integer>(HttpStatus.OK.value(), 1); 
	}
	
}

 

BoardService.java

public Page<Board> 글목록(Pageable pageable){ // page 정보를 불러오기 위해서 page로 리턴한다.
    return boardRepository.findAll(pageable); // findAll 은 JpaRepository가 가지고있다.
}

 

BoardRepository.java

public interface BoardRepository extends JpaRepository<Board, Integer>{ 
	
}

 

테스트

Pageable은 index가 1부터 시작한다. 즉 localhost:8001/?page=0 일때가 첫번째 페이지


참고 유튜브 (메타코딩님 강의)

https://youtu.be/ZNrRqthcZyk?si=WjmtQfQQlouwkFIL

    'Springboot/블로그만들기' 카테고리의 다른 글
    • [Springboot] 블로그 만들기 (29)_글 수정하기
    • [Springboot] 블로그 만들기 (28)_글 삭제하기
    • [Springboot] 블로그 만들기 (26)_글 목록 보기
    • [Springboot] 블로그 만들기 (25)_썸머노트를 이용한 글쓰기
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바