지금까지 배운것과 함께 CRUD 정도를 구현할 수 있는 게시판 만들기를 구현해보고자 한다.
CREATE 를 위해서 폼 태그를 알아보아야 한다.
<form> 에서 어디로 어떻게 보낼지를 적어 전송되고 컨트롤러는 이를 객체에 담아 받는다.
이 때 폼 데이터를 받는 객체를 DTO 라고 한다.
사용자의 입력이 DB 라는 창고에 저장이 되야한다.
우선 데이터를 받아서 확인하는 것부터 연습해보자,
templates 안에 article이라는 폴더를 만들어 그 안에 게시판 글을 입력 받는 new.mustache를 작성,
입력폼을 간단하게 만들고, 이를 제어할 수 있는 컨트롤러를 만든다.
부트스트랩으로 간단하게 받아와서 입력창을 만들어주었다.
form 태그를 던질 때 두가지를 적어줘야하는데, 어디로 보낼지 / 어떻게 보낼지 이다.
어디로 보낼지 -> action=""
어떻게 보낼지 -> method=""
{{>layouts/header}}
<form class="container" action="/articles/create" method="post">
<div class="mb-3">
<label class="form-label">titles</label>
<input type="text" class="form-control" name="title">
</div>
<div class="mb-3">
<label class="form-label">content</label>
<textarea class="form-control" rows="3" name="content"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
<a href="/articles">Back</a>
</form>
{{>layouts/footer}}
그 후 컨트롤러에 새롭게 메소드를 추가해줘야한다.
기존의 겟매핑이 아닌 포스트매핑으로 받아야한다.
우리가 POST 방식으로 보내기로 정했기 때문,
이제 이 객체를 dto 로 만들어줘야하고 이를 만들어줘야한다.
기본패키지에 dto 라는 새로운 패키지를 추가해준다.
그 안에 ArticleForm이라는 클래스를 생성해준다.
두개의 data를 던졌으니 두개의 필드를 선언해줘야한다.(title, content)
생성자를 추가해줘야하는데, 추후에 롬복을 통해 이 과정도 생략이 가능하다.
@AllArgsConstructor
@ToString
public class ArticleForm {
private String title;
private String content;
public Article toEntity() {
return new Article(null, title, content);
}
}
여기까지 작업이 이루어지면 폼태그를 통해 dto에 실어서 데이터를 db 직전까지 보내는
과정이 이루어진다.
'Back-end > Spring boot' 카테고리의 다른 글
Spring Boot 가이드 (서버 정상 가동 여부 체크 포인트) (0) | 2025.05.09 |
---|---|
create data with JPA (0) | 2022.06.24 |
MVC 역할과 실행흐름, 뷰 템플릿과 레이아웃 (0) | 2022.06.23 |
Web service의 동작원리와 View template (0) | 2022.06.23 |
Spring boot, 개발환경 세팅 (0) | 2022.06.22 |