ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 17강. 회원 웹 기능 - 등록
    스프링 프레임워크-입문 2021. 5. 5. 13:12

    우선 MemberController에 들어가도록 합니다.

    전 장에서 설정한 링크를 연결해줍니다. 그 후 resources>template에 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>
    </body>
    </html>

    서버를 재 구동 시키고 회원 가입 링크에 들어가게 되면

    정상적으로 출력이 되는 것을 확인할 수 있습니다.

    name이라는 key와 spring이라는 value가 서버로 넘어가게 됩니다.

    지금은 이 이후가 구현되어 있지 않아 등록 버튼을 눌러도 에러가 발생합니다.

     

    controller 패키지에서 MemberForm을 생성하도록 합니다.

    이러한 코드를 완성을 합니다. createMemberForm.html의 name과 MemberForm의 name이 매핑이 되게 됩니다. 그리고 값이 넘어오는 것을 여기서 빋도록 하겠습니다.

     

    그 후 MemberController로 이동 한 후 아래의 코드르 추가하겠습니다.

    위의 코드는 crateMemberForm.html에서 post 방식으로 넘어오는 Request를 받아 member에 저장한 후 레포지토리에 값을 저장시키고 home으로 리다이렉트(이동)시키겠습니다.

     

    서버를 재가동 시키도록 하겠습니다.

     

    다시 재 등록을 해도 화면에는변화가 없을 것입니다.

     

    위의 코드를 좀 설명하자면

    이 URL로 접근을 하면

    이곳에 도달합니다. 여기는 바로 members 디렉터리 하위 createMemberForm으로 보냅니다.

    여기로 도달하고 여기는 <form>에 정의되어 있듯이 post방식으로 /members/new로 보냅니다.

    여기에 도달하게 되는데 MemberForm을 파라미터로 받기에

    이 양식을 통해서 member 객체에 set이 적용이 됩니다. 그 후

    MemberService의 join()에 도달하게 되고

    MemoryMemebrRepository의 save()에 도달하게 됩니다.

    그 후 MemoryMemberRepository의 필드인 store에 값이 저장이 된 후

    Controller에서 반환하는대로 home으로 이동을 하게 됩니다.

     

Designed by Tistory.