본문 바로가기

Spring/Spring

spring-boot MVC와 템플릿 엔진

웹을 개발한다는 건 크게 세 가지 방법이 있다.

-정적 컨텐츠 -MVC와 템플릿 엔진(가장 많이 씀-jsp, php 등) -API

MVC와 템플릿 엔진

Model, View, Controller

예전에는 controller, view 분리가 안 되어 있었음. 오잉... view에서 모든 걸 다 했음. (model 1방식)

지금은 MVC. "관심사의 분리"

View는 화면을 그리는데 역량을 집중!

Controller, model은 비즈니스 로직, 내부적인 거 처리 집중!

쪼개는 게 좋겠다! 그래야 협업도 좋고, 복잡하지도 않고. 안 쪼개? 유지보수 혼자.... ;;

@GetMapping("hello-mvc")
//	public String helloMvc(@RequestParam(name = "name", required = false) String name, Model model) {
//	required = default값이 true이다. 값을 넘겨줘야 한다.
	public String helloMvc(@RequestParam(name = "name") String name, Model model) {
		model.addAttribute("name",name);
		return "hello-template";
	}

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p th:text="'hello' + ${name}">hello! empty</p>
</body>
</html>

이걸 그림으로 보자.

웹 브라우저에서 요청한다. 내장 톰켓 서버에서 어 hello-mvc왔어! spring이거봐바. controller에 맵핑 되어있네? return hello-template model값 viewResolver(화면과 관련 된 해결자가 동작)- Thymeleaf 템플릿 엔진 처리 후 렌더링 해서 변환해서 HTML로 보내줌.

템플릿 엔진! 변환해서 넘겨줌!

해당 포스팅은 인프런 김영한님의 스프링 강의를 따라가며 정리한 노트입니다 :)

반응형

'Spring > Spring' 카테고리의 다른 글

spring-boot API 방식  (0) 2021.04.15
spring-boot 정적 컨텐츠, static  (0) 2021.04.15
spring-boot gradle 빌드하고 실행하기 및 버전 오류  (0) 2021.04.15
spring-boot View 환경 설정  (0) 2021.04.15
spring-boot 프로젝트 생성  (0) 2021.04.14