티스토리 뷰

저번 포스팅에서 게시글을 작성하는 것을 포스팅 했었습니다.

 

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크