티스토리 뷰
저번 포스팅에서 게시글을 작성하는 것을 포스팅 했었습니다.
Spring Boot(게시글작성)
헤더바에서 글쓰기 버튼을 누르면 글을 작성할 수 있는 폼으로 이동시켜줘야한다. header.jsp을 보면 글쓰기를 클릭하면 /board/saveForm으로 이동하게 설정되어 있다. 이를 잡아줄 수 있는 컨트롤러를
mwdeveloper.tistory.com
이번시간에는 저번 포스팅에서 작성한 게시글을 메인 페이지에서 볼 수 있게 글목록을 구현하도록 하겠쑵니다.
자 생각을 해보면 우리가 메인페이지로 이동할 때 데이터를 가지고 이동을 해야겠죠~? 왜냐하면 우리가 작성한 글 제목과 내용의 데이터를 가지고 가야 메인페이지(index.jsp)에서 볼 수 있을테니까요.
그러기 위해서 BoradController에서 첫번째 작업을 해보도록 하겠쑵니다.
#BoardController.java
Spring에서는 data를 가지고 갈 때 Model이 필요합니다.
model.add(Attribute("들고갈데이터명","들고갈데이터");
저희는 데이터를 boardService의 글목록() 메소드에서 가져올 수 있도록 합시다!
@GetMapping({"","/"})
public String index(Model model) {
model.addAttribute("boards", boardService.글목록());
return "index"; //viewResolver 작동!!
}
#BoardService.java
List 형태로 모든 데이터들을 불러올 것이니까
boardRepository.findAll() 메소드를 이용해서 데이터를 모아줍니다. (JPA Repository의 findAll 메서드)
public List<Board> 글목록() {
return boardRepository.findAll();
}
여기까지 구현이 완료됐다면, 누군가가 메인페이지로 들어올 때, boards라는 이름으로 모든 데이터를 findAll() 해서 긁어오겠죠? 여기까지 이해했으면 계속 진행해봅시다.
#index.jsp
메인 페이지(index.jsp) 수정을 해보겠습니다.
JSTL을 사용해서 ${boards}를 활용해 넘어오는 모든 데이터를 받아보도록 하겠습니다.
${boards} 넘어오는 모든 데이터를 var = "board" 즉, board라는 이름으로 사용할것이고,
${board.title}를 사용하면 실제적으로는 board.getitle()이 호출되어 우리가 긁어온 데이터중에서 title값을 뿌려줍니다.
그러면 우리는 원하는대로 title이 적힌 메인페이지를 볼 수 있겠죠?
<c:forEach var="board" items="${boards}">
<div class="card m-2">
<img class="card-img-top">
<div class="card-body">
<h4 class="card-title">${board.title}</h4>
<a href="#" class="btn btn-primary">상세보기</a>
</div>
</div>
</c:forEach>
# 메인페이지
간단하게 작성된 게시글을 메인 페이지에서 사용자들에게 보여질 수 있도록 구현을 해봤습니다.
지금은 글을 작성하면 한 페이지에 계속해서 늘어나는데, 다음 포스팅에서는 글 목록을 페이징 해보도록 하겠습니다.
그럼 빠이
'JavaProject > Spring Boot' 카테고리의 다른 글
@Controller와 @RestController 차이 (0) | 2023.01.10 |
---|---|
Spring Boot + JPA로 개인 블로그 만들기 (0) | 2023.01.09 |
Spring Boot(게시글작성) (0) | 2022.10.03 |
Spring Boot(Security login#4) (0) | 2022.09.28 |
Spring Boot(Security login #3) (2) | 2022.09.25 |