[Spring boot] DTO : data transfer object

안민선·2024년 10월 11일
1

Spring boot 스터디

목록 보기
2/3
post-thumbnail

<form>태그에 실어 보낸 데이터를 서버의 컨트롤러가 DTO(Data Transfer Object)객체에 담아 받는다.

DTO는 최종적으로 DB에 저장된다.

DTO 만들기

패키지 만들기

  1. 프로젝트 탐색기 > src > main > java > com.example.firstproject(←프젝명) 에서 New → Package를 선택

  2. 패키지 이름 맨 뒤에 .dto로 설정 (→ com.example.firstproject.dto)

  3. dto패키지에서 New → Java Class 하면 DTO폴더가 생성!


(* 중요 *)

<dto/ArticleForm.java>

  1. 필드 작성

    public class ArticleForm {
     	private String title; //제목을 받을 필드
        private String content; //내용을 받을 필드
    
    	...(생략)...  
  2. 생성자 추가

    //생성자 추가됨 (우클릭 > Generate.. > Construcotor)
      public ArticleForm(String title, String content) {
          this.title = title;
          this.content = content;
      }
  3. toString() 메서드 추가 폼 데이터를 잘 받았는지 확인

    // 데이터를 잘 받았는지 확인할 toString() 메서드 추가됨
    // (우클릭 > Generate.. > toString())
      @Override
      public String toString() {
          return "ArticleForm{" +
                  "title='" + title + '\'' +
                  ", content='" + content + '\'' +
                  '}';
      }

form 데이터를 DTO에 담기

<controller/ArticleController.java>

  @PostMapping("/articles/creat")
    // ArticleForm타입의 f 객체를 매개변수로 선언
    public String createArticle(ArticleForm f){ // 폼 데이터를 DTO로 받기  
        System.out.println(f.toString());  //DTO에 폼 데이터가 잘 담겼는지 확인
        return "";
    }

입력 폼과 DTO필드 연결

입력 폼에서 전송한 데이터를 DTO로 받기 위해서 입력폼에 필드명을 지정 해주어야한다. name="" 속성을 이용하여 지정한다.

<templates/articles/a.mustache>

    <input type="text" class="form-control" name="title">
    <textarea class="form-control" rows="3" name="content"></textarea>
profile
사람들의 일상에 가치를 더하는 개발자🐥

0개의 댓글