한둥둥 2022. 9. 26. 13:49

우선 먼저 단순한 HomeController를 만들자. 

package hello.hellospring.controller;

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

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

/는 우리의 도메인 첫번째 바로 localhost:8080로 들어가면 처음 페이지의 화면이다. 

그러고 return으로 받은 home은 내가 만든 home.html이 호출된다. 

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

위에 있는 코드들을 통해서 home html화면을 만들어 주었다. 

homeController를 열면 @GetMapping URL 이 / 로 되어 있다. 

홈에서 회원 가입을 누르면 /members/new로 가게 만들어주었다. 또한 회원 목록은 /members로 가게 만들어줌 

근데 우리는 이전에 게시글에서 static index.html이라는 것을 만들어주었다. 이전 게시글에서 /index.html로 처음 홈페이지의 홈화면이 된다고 했는데 어떻게 위에서 home html이 웹페이지의 home화면이 될 수 있을까? 

여기에 정답은 바로 우선순위가 있다는 것이다. 

여기서 보면 내장 톰캣 서버에 넘어갈 때 스프링 컨테이너가 우선 관련 컨트롤러를 찾고 없으면 static.html파일로 넘어간 것이다. 그래서 위에서 homeController, home.html을 작성해주면 index.html에서 작성해준 html코드가 아닌 home.html에서 작성해준 html코드가 웹 브라우저에 그려지게 되는 것이다.