저번에는 글쓰기에 대해서 알아보았다.
이제 쓴 글을 리스트화 시키는 방법에 대해서 스프링 부트와 jpa 방법으로 알아보고자 한다.
이렇게 됬다 공부중이라 디자인은 생략한다.
자 이제 시작해보자
우선 리스트를 하기위해 더미데이터를 대략 120개 정도 돌려준다.
컨트롤러에서 해도 되지만 그냥 넣어준다.
CREATE PROCEDURE testDataInsert()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 120 DO
INSERT INTO board(title, content)
VALUES(concat('제목',i), concat('내용',i));
SET i = i + 1;
END WHILE;
END$$
DELIMITER $$
call testDataInsert
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <!-- 위에 xmlns 하면 타임리프 문법을 쓸수 있다.-->
<head>
<meta charset="UTF-8">
<title>게시물 리스트 페이지</title>
</head>
<style>
.layout{
width : 500px;
margin: 0 auto;
margin-top :40px;
}
</style>
<body>
<div class="layout">
<table>
<thead>
<tr>
<th>제목 </th>
<th>내용 </th>
</tr>
</thead>
<tbody>
<tr th:each="board : ${list}">
<td th:text="${board.id}">1</td>
<td>
<a th:text="${board.title}" th:href="@{/board/view(id=${board.id})}"></a>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
우선 정말 간단한..? 리스트 페이지를 만들었다.
이제 페이지에 들어갈 수 있도록
컨트롤러를 제작해보자
@GetMapping("/board/list")
public String boardList(Model model){
System.out.println(boardService.boardList());
model.addAttribute("list",boardService.boardList());
return "boardList";
}
간단하게 Getmapping으로 board에 리스트로 접근한다.
그리고 리턴타입으로는 html 파일명을 입력 주면 된다.
이제 Service를 보자
//게시글 리스트 처리
public List<Board> boardList(){
return boardRepository.findAll();
}
대략 120개의 리스트덩어리를 받아줘야해서 LIst 타입으로 받아준다.
이떄 JPA의 findALL()을 써준다.
findALL 이란?
전체 레코드 불러오기 및 정렬 페이징 등을 관리한다.
FIndAll을 하면 아래와 같은 코드로 이루어진다.
select
board0_.id as id1_0_,
board0_.content as content2_0_,
board0_.title as title3_0_
from
board board0_
다시 컨트롤러로 와보자
@GetMapping("/board/list")
public String boardList(Model model){
System.out.println(boardService.boardList());
model.addAttribute("list",boardService.boardList());
return "boardList";
}
model.addAttribute("list",boardService.boardList())
로 board라는 이름으로 service에 boardList를 뷰에 뿌려준다.
타임리프 사용법
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <!-- 위에 xmlns 하면 타임리프 문법을 쓸수 있다.-->
<head>
<meta charset="UTF-8">
<title>게시물 리스트 페이지</title>
</head>
<style>
.layout{
width : 500px;
margin: 0 auto;
margin-top :40px;
}
</style>
<body>
<div class="layout">
<table>
<thead>
<tr>
<th>제목 </th>
<th>내용 </th>
</tr>
</thead>
<tbody>
<tr th:each="board : ${list}">
<td th:text="${board.id}">1</td>
<td>
<a th:text="${board.title}" th:href="@{/board/view(id=${board.id})}"></a>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> 을 써준다.
html코드에 그 다음은 jsp에 jstl이랑 비슷하다.
th:each 는 c:foreach 와 비슷한거같다.
아까 뿌려준 board리스트가 다 털릴때 까지 html에 뿌려준다.
다음은 상세보기에 대해서 알아보자
https://github.com/MoonSeokHyun/SpringBoot_StudyBoard
'Spring Boot > 기초 게시판제작 + maria DB' 카테고리의 다른 글
JPA를 사용한 게시판 만들기(4) 삭제처리 {타임리프,스프링부트} (0) | 2022.05.06 |
---|---|
JPA를 사용한 게시판 만들기(3) 상세보기작업 {타임리프,스프링부트} (0) | 2022.05.05 |
JPA를 사용한 게시판 만들기 글쓰기(1) (3) | 2022.05.05 |
스프링부트 기초 프로젝트 만들기 (Spring initializr) (0) | 2022.05.04 |
인텔리제이(IntelliJ IDEA) 설치 방법 (0) | 2022.05.04 |