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. 회원 등록에 있어서 간단한 진행 순서 설명
- 회원 가입을 누르면 http://localhost:8080/members/new로 들어가게 된다.
- 이때 @GetMapping을 통해서 CreateMemberForm.html이 뿌려지게 된다.
- key가 name인 sdda value값을 넣어주고 form의 메소드가 post이기 때문에 PostMapping으로 넘어가서 회원 등록을 진행하게 된다.