유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
글을 작성했으니 이제 작성한 글들을 메인화면에 띄워주자
boardController.java 에서 아래와 같이 작성한다.
@Autowired
BoardService boardService;
@GetMapping({"", "/"})
public String index() {
return "index";
}
컨트롤러를 작성했으니 이제 서비스를 작성하자
글목록이라는 메서드를 작성하고 작성된 글이 여러개 일 수도 있으니 List타입으로 board를 넣어준다.
모든 글들을 가져오기위해 FindAll()을 사용한다
@Transactional(readOnly = true)
public Page<Board> 글목록(Pageable pageable){
return boardRepository.findAll(pageable);
}
db에 저장되어 있는 데이터들을 가져오기 위해서 Model이 필요하다.
매개변수로 넣어주고 Index로 리턴해줄 때 해당 데이터들을 가지고 간다.
@GetMapping({"", "/"})
public String index(Model model) {
model.addAttribute("boards", boardService.글목록());
return "index";
}
index.jsp로 이동해서 header부분에 넣은 c tag를 사용하여 반복문을 만들어주고 items로 컨트롤러에서 리턴한 boards를 받는다.
제목부분에 ${board.title}을 해주면 board.java에 getter setter 어노테이션을 넣어주었기 때문에 board.getTitle과 같은 기능으로 작동할 수있다. 해당 내용으로 이동하는 부분은 임시로 #로 만들어 놓았고 align="center"를 이용해 가운데 정렬로 해놓았다.
<div class="container">
<c:forEach var="board" items="${boards}">
<div class="card m-3">
<div class="card-body" align="center">
<h4 class="card-title">${board.title}</h4> <%--board.getTitle 과 같음--%>
<a href="#" class="btn btn-primary m-2" style="width: 100px">detail</a>
</div>
</div>
</c:forEach>
</div>
글을 최소 2개이상 만들어서 확인하기 위해 글을 한개 더 작성해보자
db에 있는 글들을 가져와서 메인화면에서 이렇게 볼 수 있다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 23. 글 상세보기 (0) | 2023.06.13 |
---|---|
[블로그프로젝트] 22. 글목록 페이징처리 (0) | 2023.06.12 |
[블로그프로젝트] 20. 글작성하기 (0) | 2023.06.11 |
[블로그프로젝트] 19-1. 시큐리티세션에 저장된 아이디값 확인해보기 (0) | 2023.06.09 |
[블로그프로젝트] 19. 시큐리티로 로그인하기 (4) | 2023.06.09 |
댓글