DTO 객체와 타임리프를 이용한 뷰페이지 반복 출력
1. 여러 개의 객체를 생성하여 뷰페이지로 넘긴 후에 타임리프 반복문을 사용하여 반복 출력하기
객체 자체를 선언할 때는 ${객체}를 사용해야하고 객체 안에 있는 변수를 사용하기 위해서는 *{필드명}을 사용해야한다.
여러 개의 객체를 생성하고 리스트를 생성해서 모든 객체를 담아줘야한다.
단일 객체일 경우는 th:object를 해서 객체를 하나 받으면 되지만, 리스트 같이 거대한 바구니를 받을 경우에는
객체들을 각각 꺼내서 받아야하기 때문에 th:each를 사용해야한다. 객체의 수만큼 작성해야할 필요는 없음
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>내 지갑 정보 확인하기</h1>
<table>
<thead>
<tr>
<th>전체 거래 금액</th>
<th>전체 금액</th>
<th>보유 KRW</th>
</tr>
</thead>
<tbody>
<!-- 단일 객체일 경우 -->
<tr th:object="${ BankDTO }">
<td th:text="*{TotalTradeAmount}"></td>
<td th:text="*{TotalMoney}"></td>
<td th:text="*{MyKRW}"></td>
</tr>
<!-- 리스트 객체일 경우 -->
<!-- blist 객체를 하나하나 꺼낼 경우 각각의 이름을 b라고 하겠다고 임의로 지정한다.-->
<tr th:each="b : ${ bList }">
<td th:text="${b.TotalTradeAmount}">1</td>
<td th:text="${b.TotalMoney}">1</td>
<td th:text="${b.MyKRW}">1</td>
</tr>
</tbody>
</table>
</body>
</html>
package com.example.capstone.DTO;
public class BankDTO {
private int TotalTradeAmount;
private int TotalMoney;
private int MyKRW;
public BankDTO(){}
public BankDTO(int totalTradeAmount, int toTalMoney, int myKRW) {
TotalTradeAmount = totalTradeAmount;
TotalMoney = toTalMoney;
MyKRW = myKRW;
}
public int getTotalTradeAmount() {
return TotalTradeAmount;
}
public void setTotalTradeAmount(int totalTradeAmount) {
TotalTradeAmount = totalTradeAmount;
}
public int getTotalMoney() {
return TotalMoney;
}
public void setTotalMoney(int totalMoney) {
TotalMoney = totalMoney;
}
public int getMyKRW() {
return MyKRW;
}
public void setMyKRW(int myKRW) {
MyKRW = myKRW;
}
}
package com.example.capstone.controller;
import com.example.capstone.DTO.BankDTO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.ArrayList;
import java.util.List;
@Controller
public class UserBankController {
@GetMapping("/MyInvestment")
public String investPage(Model model){
// 단일 객체일 경우
BankDTO bankDTO = new BankDTO( 10000, 99999, 888888 );
// 여러 개의 객체를 생성
BankDTO b1 = new BankDTO( 20300, 55555, 81111 );
BankDTO b2 = new BankDTO( 10220, 44444, 88822 );
BankDTO b3 = new BankDTO( 9000, 33333, 88833 );
BankDTO b4 = new BankDTO( 87640, 22222, 884448 );
BankDTO b5 = new BankDTO( 19000, 11111, 888648 );
//bList라는 이름으로 BankDTO 객체들을 담는 리스트를 생성한다.
List<BankDTO> bList = new ArrayList<>();
bList.add(b1);
bList.add(b2);
bList.add(b3);
bList.add(b4);
bList.add(b5);
//model
model.addAttribute("BankDTO", bankDTO);
// model 객체를 이용해서 blist도 뷰페이지로 전달을 해줘야한다.
model.addAttribute("bList", bList);
return "/Main/MyInvestment";
}
}
'Back-End > Spring Boot' 카테고리의 다른 글
[ Spring boot ] 스프링부트 데이터베이스 연동 ③ (0) | 2022.05.10 |
---|---|
[ Spring boot ] 스프링부트 데이터베이스 연동 ② (0) | 2022.05.10 |
[ Spring boot ] DTO 객체 및 폼과 뷰페이지 ② (0) | 2022.05.08 |
[ Spring boot ] DTO 객체 및 폼과 뷰페이지 ① (0) | 2022.05.07 |
[ Spring boot ] Spring boot 프레임워크 ③ (0) | 2022.05.02 |