[Spring] Create Member Post 방식

정석·2024년 3월 1일

Spring

목록 보기
7/21
post-thumbnail

Post로 들어온 정보를 memberForm의 name에 입력할 때 저절로 setName이 되어 저장된다!

  • createMemberForm.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
    <form action="/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>
</div> <!-- /container -->
</body>
</html>
  • MemberForm.java
public class MemberForm {
    private String name;

    public String getName() {
        return name;
    }

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

html 내의 form 태그 안에 name 이란 필드의 변수명이 name 으로 되어 있고 해당 이름이 MemberForm의 필드인 name 과 동일하다. 따라서 아래와 같이 파라미터로 memberForm 의 form 을 넣어주면 자동으로 setName을 하게 된다.

  • MemberController.java
@Controller
public class MemberController {

    private MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }

    @GetMapping("/members/new")
    public String createForm() {
        return "members/createMemberForm";
    }

    @PostMapping("/members/new")
    public String create(MemberForm form) {
        Member member = new Member();
        member.setName(form.getName());

        memberService.join(member);

        return "redirect:/";
    }
}

Post로 들어와 create 메서드 내에서 MemberForm 을 파라미터로 전달할 때 자동으로 찾아 값을 넣어주게 되는 것이다.

0개의 댓글