1. 회원 웹 기능 - 홈 화면 추가

홈 컨트롤러 추가

회원 관리용 홈

  • 컨트롤러가 정적 파일보다 우선순위가 높다.
  • 코드

2. 회원 웹 기능 - 등록

회원 등록 폼 컨트롤러

  • 홈페이지의 회원가입 링크(/members/new)를 누르면 createFome메서드로 인해 회원 등록 폼 HTML(createMemberForm)을 웹브라우저에게 전달한다.
  • 코드

회원 등록 폼 HTML

회원 등록 컨트롤러

  • 웹 회원가입 화면에서 데이터를 전달 받을 폼 객체
   public class MemberForm {
       private String name;
       
       public String getName() {
           return name;
       }
       public void setName(String name) {
           this.name = name;
       }
   }
  • 회원 컨트롤러에서 회원을 등록하는 기능
    //Member Controller
    @PostMapping(value = "/members/new")
    public String create(MemberForm form) {
        Member member = new Member();
        member.setName(form.getName());
        memberService.join(member);
        return "redirect:/";
    }
  • 동작원리
    • 회원 등록 폼 HTML html <form action="/members/new" method="post">
      • 회원 컨트롤러 @PostMapping(value = "/members/new")

    • 회원 등록 폼 HTML html<input type="text" id="name" name="name">
      • 회원가입 버튼을 누르게 되면 create함수의 매개변수로 name="name"의 값이 넘겨진다.
      • 자바 빈 프로퍼티 규약에 의해 name="name"을 통해 spring MVC가 MemberForm의 setName함수를 호출한다.

3. 회원 웹 기능 - 조회

회원 컨트롤러에서 조회 기능

  • 홈페이지의 회원목록 링크(/members)를 누르면
    • model에 회원 리스트(List members)를 view resolver에 전달
    • list메서드로 인해 회원 리스트 HTML(members/memberList)을 view resolver를 통해 웹브라우저에게 전달한다.
     //Member Controller
     @GetMapping("/members")
     public String list(Model model){
         List<Member> members = memberService.findMembers();
         model.addAttribute("members", members);
         return "members/memberList";
     }

회원 리스트 HTML

  • each="member : ${members}"
    • 전달받은 model의 키값 members를 이용하여 member list에 저장된 객체들에 값들
      (id, name)을 each를 통해 반복하면서 웹 화면에 표시
      <!--memberList.html-->
      <tr th:each="member : ${members}">
          <td th:text="${member.id}"></td>
          <td th:text="${member.name}"></td>
      </tr>
profile
화이팅!

0개의 댓글

관련 채용 정보