스프링 부트/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

16. 회원 웹 기능 - 등록

sungw00 2023. 3. 13. 17:13
728x90

회원 웹 기능 - 등록

회원 등록 폼 컨트롤러

package hello.hellospring.controller;

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

@Controller
public class MemberController {

    @Autowired private final MemberService memberService;


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

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

 

회원 등록 폼 HTML

<!-- /members/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>

localhost:8080 요청하여 회원가입을 누르면 다음 화면 출력


MemberController에 아래 코드를 추가

post 요청으로 members/new로 요청하면서 member 객체를 생성하고 이름을 setName으로 저장한 후 getName() 메서드로 가져와서 회원가입을 하고 redirect 요청으로 홈 화면으로 가는 로직이다.

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

        memberService.join(member);

        return "redirect:/";
    }

이제 이름을 입력한 후 등록을 누르면 등록 후 홈 화면으로 넘어가지게 된다.

728x90