1. 코드 분석
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping("/") //localhost 뒤에 아무것도 안 치고 그냥 GET 했을 때 밑의 함수로 처리해라.
public String home(){
return "home"; / template에서 home.html을 찾아서 viewResolver에서 실행 시켜라.
}
}
<!--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>
2.예전에 정적컨텐츠 공부 시, 해당 주소에 대응하는 Controller가 없으면,
hello 출력하는 index.html이 실행되도록 하였는데,
왜 localhost8080/members/new로 갔을 때 White Label Error가 떴을까?
정적 컨텐츠에서 톰캣이 요청 보낸 것을 스프링부트가 받은 뒤, 스프링 부트는 해당 일을 처리할 수 있는 컨트롤러가 있는지 찾아보고 없으면 resource에 static에 들어가 해당 요청 주소와 같은 html 문서를 그대로 웹 브라우저로 보낸다.
일단 member/new라는 html도 없었지만, 있었어도 White Label Error 오류가 떴을 것이다.
왜냐하면 이미 스프링 부트에서 컨트롤러를 이용해 해당 home.html을 반환했고, 해당 문서를 웹 브라우저에 돌려보냈다.
이 과정에서 resource/static은 거치지 않았다. 따라서 그 페이지에서 클릭을 통해 다른 주소로 들어가더라도 White Label Error가 난다.
이 Error가 안 나게 하기 위한 것은 다음 시간에 배운다.
'백엔드 개발 > SpringMVC' 카테고리의 다른 글
회원 웹 기능 - 조회 (0) | 2022.12.02 |
---|---|
회원 웹 기능 등록 (0) | 2022.12.01 |
컴포넌트 스캔과 의존관계 설정 (0) | 2022.12.01 |
회원 서비스 테스트 (0) | 2022.12.01 |
회원서비스(비즈니스 로직) 만들기 (0) | 2022.11.30 |