📅 공부 기간 : 08. 21(수)
@ModelAttribute 애너테이션을 이용해 하나로 객체로 받아 처리함.public String regist(
@ModelAttribute Friend friend, // 매개변수 위치에 사용
Model model )
DTO를 생성
@NoArgsConstructor)@Setter)Model 객체에 데이터(객체)를 담음.
model.addAttribute("friend", friend);
<!-- i) 태그 안 th 붙이기 -->
<p th:text="${id}">아이디</p>
<!-- ii) [[${}]] -->
<p>이름 : [[ ${friend.username} ]]</p>
<!DOCTYPE html>
<html xmlns:th="http://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>객체로 데이터 송신하기</title>
</head>
<body>
<h2>객체로 데이터 송신하기</h2>
<form action="regist" method="POST">
<label for="username">이름 : </label>
<input type="text" id="username" name="username" placeholder="이름을 입력"><br>
<label for="age">나이 : </label>
<input type="text" id="age" name="age" placeholder="나이를 입력"><br>
<label for="phone">번호 : </label>
<input type="text" id="phone" name="phone" placeholder="번호를 입력"><br>
<label for="birthday">생년월일 : </label>
<input type="date" id="birthday" name="birthday" placeholder="생년월일 선택"><br>
<label>성향 :
<input type="radio" name="active" value="0"> 내성적
<input type="radio" name="active" value="1" checked> 외향적
</label>
<br><br>
<input type="submit" value="전송">
<input type="reset" value="취소">
</form>
</body>
</html>
package com.kdigital.spring4.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import com.kdigital.spring4.dto.Friend;
@Controller
public class FriendController {
@PostMapping("/regist")
public String regist(
@ModelAttribute Friend friend,
Model model ){
System.out.println(friend);
model.addAttribute("friend", friend); // friend 객체에서 정보를 꺼낼 때 "friend"라는 이름으로 꺼냄
return "registResult"; // forwarding
}
}
@NoArgsConstructor : 기본 생성자 자동 생성@Setter : Setter 자동 생성@Getter : Getter 자동 생성@ToString : toString() 메서드 자동 생성package com.kdigital.spring4.dto;
import java.time.LocalDate;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@NoArgsConstructor
@Setter
@Getter
@ToString
public class Friend {
private String username;
private Integer age;
private String phone;
private LocalDate birthday;
private boolean active;
}
<!DOCTYPE html>
<html xmlns:th="http://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>객체 데이터 꺼내기</title>
</head>
<body>
<h2>객체 데이터 꺼내기</h2>
<p> 전체 출력 : [[ ${friend} ]] </p> <!-- toString()으로 출력 -->
<p>
이름 : [[ ${friend.username} ]]<br>
<!-- "friend"로 담아서 friend로 꺼냄,
'.username' 붙이면 getter로 꺼내는 방식이 됨(friend.getUsername()으로 자동으로 바뀜) -->
나이 : [[ ${friend.age } ]]<br>
전화번호 : [[ ${friend.phone }]]<br>
생년월일 : [[ ${friend.birthday }]]<br>
성향 : [[ ${friend.active }]]<br>
</p>
</body>
</html>
