이제 MVC 와 템플릿 엔진에 대해 좀 더 자세히 알아보도록 하자!!
MVC 는 Model, View, Controller 를 나타낸다.
이전에 만들었던 HelloController 에 내용을 좀 더 추가해보도록 하자.
Hello Controller에 들어가서
위와 같은 코드를 추가해주자.
그 후 main -> resources -> templates 에 가서
hello-template.html 이라는 파일을 하나 만들어준다.
hello-template.html 파일에 위와 같은 코드를 추가해준 뒤 서버를 한번 돌려보도록 하자. (참고로 <p></p> 사이에 있는 hello! empty 라는 문장은 absolute path를 그대로 url 에 치면 나오는 내용으로 꼭 필요한 내용은 아니다.)
localhost:8080:/hello-mvc 라는 URL을 입력해주면 위와 같이 Error Page 가 뜨게 된다. 이유가 뭘까??
콘솔을 보면 위와 같이 request parameter 'name' 이 현재 없다는 Warn이 떠있는 것을 확인할 수 있을 것이다.
Getmapping("hello-mvc") 메소드에 있는 @RequestParam("name") 에는 여러가지 옵션 중 required 라는 것이 있는데 이는 디폴트로 required=true 이다. 즉 name을 꼭 넘겨주어야 한다.
http의 get 방식을 이용하여 name을 넘겨줘보자.
localhost:8080/hello-mvc?name=spring!! 이라는 URL을 입력해보면
위와 같이 화면이 잘 뜨는 것을 확인 할 수 있다!!
get 방식으로 name을 넘겨주면 model.addAttribute 에서 name이 spring!! 으로 바뀌게 되고, hello-template 을 return 해주게 되면 hello-template.html 안에 있는 파일에서 ${name} 부분이 spring!! 으로 치환된다.
위의 그림을 통해 다시 한번 동작 과정을 살펴보자.
먼저 localhost:8080/hello-mvc 를 입력하면 내장되어 있는 톰캣 서버가 이를 Spring에 넘겨준다. 그럼 먼저 Controller 에서 hello-mvc 가 Mapping 되어있는 것을 확인한 후, 이 메소드를 실행하게 된다.
메소드 실행 후, hello-template을 return 해주게 된다. model 에는 key 값이 name, value 값이 spring!! 이 들어가 있게 된다.
그 후 viewResolver가 templates 폴더안에 있는 hello-template.html 파일을 찾은 후, Thymeleaf 템플릿 엔진에게 처리요청을 하면, Thymeleaf가 이 파일을 렌더링하여 변환을 한 HTML을 웹 브라우저에 반환하게 된다!
'BackEnd > Spring Boot' 카테고리의 다른 글
회원 Domain과 Repository 만들기 (0) | 2022.10.07 |
---|---|
API 란? (4) | 2022.10.03 |
정적 컨텐츠 (0) | 2022.10.01 |
콘솔에서 Build 하고 실행하기 (0) | 2022.09.30 |
View 환경설정 (0) | 2022.09.29 |