2023. 1. 25. 17:18ㆍSpring 강의/section1
welcome page를 만들어보자
localhost:8080에 들어갔을 때 처음 뜨는 페이지를 작성할 것인데
이때 springboot에서는 static의 index.html을 띄우도록 되어 있다.(만약 없으면 index 템플릿을 찾는)
[src] - [main] - [java] - [resource] - [static]에서 index.html을 만들고 간단한 내용을 넣는다

이렇게 하고 다시 run하면 localhost:8080에

내용이 잘 뜨는 것을 볼 수 있다.
hello 링크를 타고 들어가면 오류 페이지가 뜰 것이다.
저 링크에 연결해둔 내용이 없으므로 당연한 것이다.
이제 동작하고 프로그래밍 되는 화면을 만들어보자.
웹 어플리케이션에서 가장 첫번째 진입점 @Controller이다.
그러므로 controller 패키지부터 만들고 시작한다.

@Controller 어노테이션을 달아줘서 컨트롤러임을 인식하게 하고
@GetMapping에 주소를 적어주면 webApplication에서 /hello로 들어오면 이 메소드가 호출된다.

model.addAttribute("data", "hello!!!")라고 작성하고 return "hello"라고 되어있는데
이건 이 model을 templates의 hello라는 이름의 html 파일에 넘기겠다는 뜻이다.

hello.html

둘째줄에 타임리프 템플릿 엔진이 선언되어 있다.
<html xmlns:th="http://www.thymeleaf.org">
이 내용을 th에 담아 타임리프 문법을 사용할 수 있다.
<p th:text="'안녕하세요. '+ ${data} ">
여기 있는 {data}에는 controller에서 전달해준 내용이 들어오게 된다.
model.addAttribute("data", "hello!!!") -> data라는 부분에 hello!!!가 들어가게 된다.


웹 브라우저 get 방식으로 localhost:8080/hello로 들어왔다.
그러면 내장 톰캣 서버가 가장 처음에 받아서 해당되는 controller를 찾는다.
그럼 지금 상황에서는 @GetMapping("hello") 컨트롤러가 매핑될 것이고
이 메소드에서는 return 값으로 "hello"를 줬다.
그러면 스프링부트에서는 [resources] - [templates]에서 hello라는 html을 찾는다.
리턴값을 보낼 때 model이 넘어오는데 여기서는 data에다가 hello!!!라는 값을 담아 보냈다.
- 컨트롤러에서 리턴 값으로 문자를 반환하면 View Resolver가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿엔진 기본 viewName 매핑
- resources : templates/ + [View Name] + .html