[스프링 부트 입문 04] 뷰 템플릿과 MVC 패턴
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 "";
}
}