스프링 부트/스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

6. MVC와 템플릿 엔진

sungw00 2023. 3. 7. 12:46
728x90

MVC와 템플릿 엔진: 서버에서 프로그래밍해서 동적으로 HTML 파일을 생성해서 제공하는 엔진

 

MVC: Model, View, Controller

 

hello-spring/src/main/resources/templates/hello-template.html 파일 작성

<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>

hello-spring/src/main/java/hello.hellospring/controller/HelloController 클래스 파일 작성

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {

    @GetMapping("hello")
    public String hello(Model model) {
        model.addAttribute("data", "spring!!");
        return "hello";
    }

    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model) {
        model.addAttribute("name", name);
        return "hello-template";
    }
}

localhost:8080/hello-mvc 요청 시 에러가 발생한다. 

발생한 에러 내용을 보면 아래와 같다.

Required request parameter 'name'이 없다는 에러가 나온다. 

name 파라미터를 같이 넘겨주어야 한다.

주소창의 요청 URL을 다음과 같이 수정한다.

그리고 요청하게 되면 아래와 같이 정상적으로 출력되는 것을 확인할 수 있다.

 

MVC, 템플릿 엔진 이미지 삽입하기

 

뷰 리졸버(화면과 관련된 해결자)

spring! 부분이 변환되어 웹 브라우저로 전송된 것을 확인할 수 있다.

728x90