<form>
태그에 실어 보낸 데이터를 서버의 컨트롤러가 DTO(Data Transfer Object)객체에 담아 받는다.
DTO는 최종적으로 DB에 저장된다.
패키지 만들기
프로젝트 탐색기
> src
> main
> java
> com.example.firstproject
(←프젝명) 에서 New → Package를 선택
패키지 이름 맨 뒤에 .dto
로 설정 (→ com.example.firstproject.dto)
dto패키지에서 New → Java Class 하면 DTO
폴더가 생성!
(* 중요 *)
<dto/ArticleForm.java>
필드 작성
public class ArticleForm {
private String title; //제목을 받을 필드
private String content; //내용을 받을 필드
...(생략)...
생성자 추가
//생성자 추가됨 (우클릭 > Generate.. > Construcotor)
public ArticleForm(String title, String content) {
this.title = title;
this.content = content;
}
toString() 메서드 추가 폼 데이터를 잘 받았는지 확인
// 데이터를 잘 받았는지 확인할 toString() 메서드 추가됨
// (우클릭 > Generate.. > toString())
@Override
public String toString() {
return "ArticleForm{" +
"title='" + title + '\'' +
", content='" + content + '\'' +
'}';
}
<controller/ArticleController.java>
@PostMapping("/articles/creat")
// ArticleForm타입의 f 객체를 매개변수로 선언
public String createArticle(ArticleForm f){ // 폼 데이터를 DTO로 받기
System.out.println(f.toString()); //DTO에 폼 데이터가 잘 담겼는지 확인
return "";
}
입력 폼에서 전송한 데이터를 DTO로 받기 위해서 입력폼에 필드명을 지정 해주어야한다. name=""
속성을 이용하여 지정한다.
<templates/articles/a.mustache>
<input type="text" class="form-control" name="title">
<textarea class="form-control" rows="3" name="content"></textarea>