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으로 넘어가서 회원 등록을 진행하게 된다.
'Back-End > Spring' 카테고리의 다른 글
[Spring][스프링 기본편] - 1. 객체지향 설계와 스프링 (0) | 2022.01.12 |
---|---|
[SpringBoot][스프링 입문] - 5.3 회원 웹 기능 - 조회 (0) | 2021.12.28 |
[SpringBoot][스프링 입문] - 5.1 회원 웹 기능 - 홈 화면 추가 (0) | 2021.12.27 |
[SpringBoot][스프링 입문] - 4.2 자바 코드로 직접 스프링 빈 등록하기 (0) | 2021.12.25 |
[SpringBoot][스프링 입문] - 4.1 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2021.12.25 |