Back-End/Spring

[SpringBoot][스프링 입문] - 5.2 회원 웹 기능 - 등록

얄루몬 2021. 12. 28. 10:03

package hello.hellospring.controller;

import hello.hellospring.domain.Member;
import hello.hellospring.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;


@Controller //컴포넌트 스캔
public class MemberController {
    private final 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:/";
    }

}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">

    <!-method가 post이기 때문에 데이터를 등록할 때 사용 한다.-->
    <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>

</body>
</html>

1. @GetMapping VS @PostMapping

  • @GetMapping
    • url에 직접 사용
    • 데이터를 조회할 때 사용된다. 
    • 주소창에 파라미터 노출 O
  • @PostMapping
    • 데이터의 등록(생성)할 때 사용된다. 

회원 웹 기능 - 홈 화면
회원 웹 기능 - 등록 화면

 

2. 회원 등록에 있어서 간단한 진행 순서 설명

  1. 회원 가입을 누르면 http://localhost:8080/members/new로 들어가게 된다.
  2. 이때 @GetMapping을 통해서 CreateMemberForm.html이 뿌려지게 된다.
  3. key가 name인 sdda value값을 넣어주고 form의 메소드가 post이기 때문에 PostMapping으로 넘어가서 회원 등록을 진행하게 된다.