Engineering Note

[스프링 부트 입문 07] 폼 데이터 주고 받기 본문

Server/Spring

[스프링 부트 입문 07] 폼 데이터 주고 받기

Software Engineer Kim 2022. 7. 8. 02:49

본 내용은 홈팍 스프링 부트 강좌를 참고하였습니다.

https://www.youtube.com/watch?v=rzjudEZ8bt0&list=PLyebPLlVYXCiYdYaWRKgCqvnCFrLEANXt&index=8

 

 

view 페이지의 Form 태그를 통해 Form data를 서버로 전달 받아 처리해줄 controller

package com.example.boardproject.controller;

import com.example.boardproject.dto.ArticleForm;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

@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 "redirect:/";
    }

}

 

view page

 

form 태그에서 action은 버튼을 누르면 처리해줄 controller url을 가리키고, method는 HTTP method를 가리킨다. 여기서는 post로 처리해주겠다고 적어준다. 

 

그리고 Controller 내부 method에서 클라이언트가 보낸 데이터를 받기 위해서는 객체로 받아야 하는데 이를 DTO(Data Transfer Object라고 한다. 

 

DTO의 field는 view page에서 데이터가 적히는 input과 textarea 태그의 name 속성들의 이름과 같아야 한다. 이렇게 해주면 각각의 name에 해당하는 데이터가 DTO field에 저장된다. 여기서는 input태그의 name이 title이기 때문에 ArticleForm 객체의 title field에 저장된다. textarea의 name은 content이기 때문에 ArticleForm의 title에 저장된다.

 

 

 

Comments