index.jsp부분에 게시판 목록리스트를 뿌려주기 위해
필요한 라이브러리
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
페이지로 이동할 때 데이터를 가져가야 하기때문에 파라미터 값에 Model model 을 추가
model은 jsp에서 Request정보 라고 생각하면 된다.
model에다가 데이터를 담으면, 뷰까지 데이터를 가지고 이동한다.
그리고 boardService 주입시키고,
boardService.boardList()메서드를 뿌려줘야한다.
@Controller
public class BoardController {
@Autowired
BoardService boardService;
@GetMapping({"","/"})
//메인페이지로 갈때 데이터를 가져가야한다.
public String index(Model model) {
model.addAttribute("boards", boardService.boardList());
return "index"; //viewResolver 작동
}
//USER권한 필요
@GetMapping("/board/saveForm")
public String saveForm() {
return "board/saveForm";
}
}
boardList()메서드 생성하기 위해 Service 이동
List타입<Board>
로 받고 findAll
리턴
findAll()은 JpaRepository가 들고 있는 메서드
//글 목록리스트
public List<Board> boardList() {
return boardRepository.findAll();// 전부가져와야하니까
}
기존에 index.jsp에 있는 card-body부분 하나만 남겨 놓고 삭제하고
<c:forEach var="board" items="${boards}"></c:forEach>
로 감싸준다.
items="boards"
데이터는 컬렉션 데이터
index.jsp페이지로 데이터를 가지고 이동
데이터는 items="boards"에서 받아서, 받은 데이터를 한 건씩 var="board"라는 변수에 집어서 뿌릴수있다.
Request로 넘어올때 jsp에서 EL표기법으로 받을 수 있다.
board라는 객체가 title이라는 변수를 들고 있음 entity
<%@ 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}">
<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>
</div>
<%@ include file="layout/footer.jsp" %>
내가 썼던 부분이 목록에 나오는걸 확인할 수 있다.!