form태그의 post요청과 그 데이터의 바인딩

안석우(문과대학 철학)·2023년 11월 19일

스프링

목록 보기
1/15
<form class="/members/new" method="post">
    <div class="form-group">
      <label for="name">이름</label>
      <input type="text" id="name" name="name" placeholder="이름을 입력하세요">
    </div>
    <button type="submit">등록</button>
  </form>

여기 input을 받아서

@PostMapping("/members/new")
    public String createForm(MemberForm memberForm){
        Member member = new Member();
        member.setName(memberForm.getName());
        System.out.println(memberForm.getName());
        memberService.join(member);

        return "redirect:/";
    }

이 컨트롤러로 처리를 할 건데

public class MemberForm {
    private String name;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


}

아니 여기에 이름 데이터가 어떻게 담기는건지 이해가 잘 안 갔다.

대충 보니까 memberForm의 name이랑 input태그의 name속성이 "name"으로 같아서 이게 가능하다고 하더라.

<input type="text" id="name" name="name2" placeholder="이름을 입력하세요">

이렇게 하면 memberForm에 데이터 안 담기더라

참고: https://velog.io/@cheshirehyun/form%ED%83%9C%EA%B7%B8%EC%9D%98-post-%EC%A0%84%EC%86%A1-%EC%9A%94%EC%B2%AD%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B0%80-%EB%B0%94%EC%9D%B8%EB%94%A9%EB%90%98%EB%8A%94-%EA%B8%B0%EC%A4%80

0개의 댓글