스프링 부트, 입문! 07

윤현우·2022년 11월 18일
0

스프링 부트, 입문!

목록 보기
4/18
post-thumbnail

폼 데이터 주고 받기(게시판 만들기)

CRUD

CRUD란 Create, Read, Update, Delete의 줄임말로, 데이터베이스를 사용하기 위한 기초적인 4가지 형식이다.

  • Create로 데이터를 생성하고
  • Read로 데이터를 읽으며
  • Update로 새로운 데이터를 업데이트하고
  • Delete로 데이터를 삭제하는 것이다.

이 CRUD형식은 모든 데이터들을 관리하는 가장 기초적인 형식이 된다.

나는 이 중 Create 데이터를 생성하는 과정을 배울 것이다.


Form 데이터 주고 받기

클라이언트가 입력한 정보를 서버에 주는 방식을 html에서 <form>태그를 사용하여 주고 받는다.

폼 데이터는 서버로 전송을 하고, 서버의 Controller는 이를 DTO라는 객체에 담아 받는다.

Create 형식은 클라이언트에게 데이터를 입력 받아 서버에 있는 DB에 저장되는 과정이다.
요번 강의에서는 데이터를 받아 확인 하는 것까지 공부 할 것이다.


View 화면 만들기

view 역시 bootstrap을 이용하여 만들었다.

이 강의는 Spring을 공부하기 위해 듣는 것이니 View 페이지를 만드는 법은 제외 시켰다.


Form 데이터 전송

form 태그를 서버에 보낼 때 어떻게 어디로 보낼지 알아야 한다.
-> form 태그 안에 action, method라는 속성을 넣어서 보낸다.

action 속성

  • 어디로 보낼지 정하는 속성

method 속성

  • 데이터를 어떻게 보낼지 정하는 속성

View 페이지의 form 태그이다.

action = "/articles/create"

  • /articles/create라는 주소로 보낸다는 뜻이다.

method = "post"

  • post 방식으로 보낸다는 뜻이다.

method 방식은 차후 강의에서 공부한다.


Form 데이터 받기

Controller가 form 데이터를 받기 위해서는 DTO라는 객체로 받아야 한다.

DTO 클래스 생성

이 DTO 클래스가 폼데이터를 받아올 그릇이 되는 것이다.

DTO클래스에 title과 content라는 변수를 지정하였다.


Controller 메서드 생성

form태그의 데이터를 받기위해서 메서드를 생성했다.

@PostMapping("/articles/create)

  • form태그를 post 방식으로 지정해서 PostMapping을 사용한다.
  • /articles/create 주소로 post를 보낸다.

public String CreateArticle(ArticleForm form)

  • 여기서 ArticleForm form 파라미터는 ArticleForm클래스의 파라미터이다. (DTO클래스)
  • form태그 데이터를 form 파라미터로 보내진다.

이후 실행시키면

title과 content에 값을 제대로 입력받지 못했다.

그 이유는 form태그의 input값들에 name속성(변수명)을 지정하지 않았기 때문이다.
-> DTO의 필드명과 동일시 하게 name을 지정해야 한다.
(중요)

이후 다시 실행시키면

페이지에는 에러가 난다.
-> 매핑한 이후에 return할 주소를 지정해주지 않았기 때문이다.

하지만,

DTO에 입력 받은 정수는 정확히 들어가 있는 것을 확인할 수 있다.


References(참고자료)
https://www.inflearn.com/course/%EA%B0%9C%EB%85%90%EC%8B%A4%EC%8A%B5-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%9E%85%EB%AC%B8

profile
개발자가 되는 그날까지

0개의 댓글