반응형
오늘은 스프링 부트에서 웹 폼(form) 데이터를 DTO(Data Transfer Object)로 받는 방법에 대해 알아보겠습니다.
● 폼 데이터(Form Data): 웹 페이지에서 사용자가 입력한 데이터를 서버로 전송하기 위한 형식을 의미합니다.
● DTO(Data Transfer Object)는 서버와 클라이언트 간에 데이터를 효율적으로 전송하기 위해 사용하는 객체를 말합니다.
1. 뷰페이지 생성
{{>layouts/header}}
<form class="container" action="/articles/create" method="post">
<div class="mb-3">
<label class="form-label">제목</label>
<input type="text" class="form-control" name="title">
</div>
<div class="mb-3">
<label class="form-label">내용</label>
<textarea class="form-control" rows="3" name="content"></textarea>
</div>
<button type="submit" class="btn btn-primary">제출</button>
<a href="/articles">Back</a>
</form>
{{>layouts/footer}}
뷰페이지를 생성하고 <form> 태그의 action 속성으로 데이터를 어디에 보낼지 정의하고 method 속성으로 데이터를 어떻게 보낼지 정의합니다.
2. 컨트롤러 생성
@Controller
public class ArticleController {
// 폼 페이지 보여주기
@GetMapping("/articles/new")
public String newArticleForm() {
return "articles/new";
}
// 폼 데이터 받기
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
System.out.println(form.toString()); // 잘 담겼는지 확인
return "";
}
}
PostMapping 방식으로 URL주소를 연결합니다
3. DTO 생성
// 폼데이터를 받아올 그릇
public class ArticleForm {
private String title; // 제목 받을 필드
private String content; // 내용 받을 필드
public ArticleForm(String title, String content) {
this.title = title;
this.content = content;
}
@Override
public String toString() {
return "AticleForm{" +
"title='" + title + '\'' +
", content='" + content + '\'' +
'}';
}
}
전송받은 데이터를 담아둘 객체인 DTO를 만들면 컨트롤러에서 폼데이터를 전송받아 DTO에 담습니다.
반응형
'Spring > Spring Boot' 카테고리의 다른 글
[Spring Boot] JWT(Json Web Token) - 웹의 안전한 인증 방식 (0) | 2024.02.20 |
---|---|
[Spring Boot] Lombok 사용법 (0) | 2024.02.19 |
[Spring Boot] DTO를 DB에 저장 (0) | 2024.02.18 |
[Spring Boot] 스프링 부트 폴더 구조 이해하기 (0) | 2024.02.16 |
[Spring Boot] 패키지 구조 : 계층형 vs 도메인형 (1) | 2024.02.12 |