회원 웹 기능 - 홈 화면 추가

<templates/home.html>

 <!DOCTYPE HTML>
 <html xmlns:th="<http://www.thymeleaf.org>">
 <body>
 <div class="container">
    <div>
        <h1>Hello Spring</h1>
        <p>회원 기능</p>
        <p>
            <a 
            <a 
href="/members/new">회원 가입</a>
 href="/members">회원 목록</a>
        </p>
    </div>
 </div> <!-- /container -->
 </body>
 </html>

<HomeController>

package hello.hello_spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(){
        return "home";
    }
}

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


회원 웹 기능 - 등록

<MemberController.java>

package hello.hello_spring.controller;

import hello.hello_spring.domain.Member;
import hello.hello_spring.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 createFrom(){
        return "members/createMemberForm";
    }
    @PostMapping("members/new")
    public String create(MemberForm form){
        Member member = new Member();
        member.setName(form.getName());

        memberService.join(member);

        //회원가입이 다 끝나면 홈화면으로 보내기
        return "redirect:/";
    }
}

결과 확인해보기

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

        System.out.println("member = " + member.getName());

        memberService.join(member);

        //회원가입이 다 끝나면 홈화면으로 보내기
        return "redirect:/";
    }

회원 웹 기능 - 조회

<MemberController.java>