카테고리 없음

[스프링 부트 입문 04] 뷰 템플릿과 MVC 패턴

유호야 2021. 6. 30. 21:11
반응형

Mission MVC 패턴을 활용한, 템플릿 페이지를 만드시오.

View templates MVC

사용자 수에 따라 수 많은 웹페이작 만들어져있을까요?
이러한 괴로움부터 벗어나고 싶어서 View templates을 만든다.

View Templates이란 화면을 담당하는 기술이다. 
웹 페이지를 하나의 틀로 만들고 여기에 변수를 삽입하게 한다.
틀이 되는 페이지가 변수의 값에 따라서 수많은 페이지로 바뀔 수 있다.
Mustach가 view templates을 만드는 도구입니다.

다시 돌아와서 화면을 담당하는 view templates 에는

Controller와 Model 두 종류가 있다. 

Controller는 처리과정을 담당하고 Model은 데이터를 관련한다.

이렇게 화면 처리 데이터 분야를 각 담당자 별로 나눈 기법을 MVC 패턴이라고 한다.

 src > main > resources > templaets > new file 생성

mustach : view template를 만드는 도구
greetings.mustach를 생성한다.

2. mustach 플러그인 설치
IntelliJ : Help > plugins > ... 

지금은 HTML을 다르게 부른다고 생각하면 된다.

view templates은 동료가 있다. Controller와 Model

4. 컴트롤러 만들기 
src > main > java > default pacakge 이외의 패키지 생성 ... controller
: com.example.firstproject.controller
Java Class 생성 FirstController ~~Controller라고 작성하는 것이 관례이다.

greetings.mustach와 연결할 수 있게 해준다.

- 먼저 컨트롤러를 선언해준다. @Controller : 동료를 선언
- 메소드를 선언한다.
- 메소드를 가지고 view template 페이지를 반환할 수 있게 해야 한다.
- 앞의 타입 이름만 greetings 메소드 return 값에 작성해준다.
- templates/greetings.mustache를 찾아서 브라우저를 전송해주는 기능을 한다. 

@Controller
public class FirstController {
      public String niceToMeetYou() {
            return "";
      }
}

localhost:8080/greeting.mustach로는 접근할 수 없다.
추가적인 작업이 필요

@GetMapping 이 필요

@Controller
public class FirstController {

      @GetMapping("/hi")
      public String niceToMeetYou() {
            return "";
      }
}

 

template과 HTML과 다른 것이 무엇이지?

{{ username  }} 을 작성하면 변수를 불러와서 다른 값을 이용할 수 있다.

> 실행 후 에러가 난다.

username이라는 변수를 찾을 수 없기 때문에 나타난 에러

5. 모델 사용하기

@Controller
public class FirstController {

      @GetMapping("/hi")
      public String niceToMeetYou(Model model) {
            model.addAttribute("username", "홍팍");
            return "";
      }
}

 

 

반응형