[Spring] 뷰 템플릿과 MVC 패턴 실습(페이지 만들기) (1)
뷰 템플릿을 만드는 것 : 확장자 mustache (ex. greetings.mustache)
resources의 templates에 만들면 된다.
머스테치 플러그인이 필요하므로 Install~에서 ok를 눌러주면 이렇게 나온다.
다음은 컨트롤러를 만들어야 한다.
컨트롤러는 src > main > java 디렉터리에 하나의 패키지로 만든다.
com.example.firstproject에서 new > package로 com.example.firstproject.controller를 만든다.
그러고나서 해당 controller 패키지에서 new > java class로 FIrstController 클래스명을 지정한다.
실행하면서 또 문제가 생겨서
> Process 'command 'C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe'' finished with non-zero exit value 1
IntelliJ 실행시 finished with non-zero exit value 1 에러
Process 'command 'C:/Program Files/AdoptOpenJDK/jdk-11.0.8.10-hotspot/bin/java.exe'' finished with non-zero exit value 1File > Settings 메뉴 클릭 (단축키: ct
velog.io
(사람들은 너무 똑똑하다..)
@Controller : 컨트롤러 어노테이션
@GetMapping("/URL") : 클라이언트의 URL 요청을 받아 특정 컨트롤러의 메서드가 처리하게 한다.
{{ }} : 변수로 사용하는 것. 모델적용
모델은 컨트롤러의 메서드에서 매개변수로 받아온다.
매개변수를 추가해주고, 모델에서 변수를 등록할 땐 addAttribute("변수명", 변수값) 메서드를 사용
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>{{username}}님, 반갑습니다!</h1>
</body>
</html>
greetings.mustache (뷰 템플릿)
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class FirstController {
@GetMapping("/hi")
public String niceToMeetYou(Model model){
model.addAttribute("username", "희디");
return "greetings";
}
}
FirstController.java (Controller) + 모델추가
: 메서드를 수행한 결과로 greeting.mustache 파일을 반환한다.
: 이때 return 문에는 파일 이름만 작성하면 됨
(서버가 알아서 templates 디렉터리에 있는 뷰 페이지 찾아서 웹 브라우저로 전송함)
package com.example.firstproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FirstprojectApplication {
public static void main(String[] args) {
SpringApplication.run(FirstprojectApplication.class, args);
}
}
Main 함수.
MVC 패턴으로 홈페이지 만드는 알고리즘, 순서
1. 뷰 페이지 만들기(greetings.mustache)
2. 컨트롤러 만들기(FirstController.java) : src>main>java에서 새로운 컨트롤러 패키지 생성 후 클래스 추가(.java)
3. 컨트롤러에서 뷰 페이지 반환하기 : return "greetings";
4. 뷰 페이지에 변수 삽입하기 : {{username}}
5. 컨트롤러에 모델 추가하기 : niceToMeetYou(Model model)
6. 모델에서 변수 등록하기 : model.addAttribute("username", "희디");
MVC의 역할과 실행 흐름 이해하기
컨트롤러가 클라이언트의 요청을 받고, 뷰가 최종 페이지를 만들고, 모델이 최종 페이지에 쓰일 데이터를 뷰에 전달.
정리하면 아래와 같다!
하나의 컨트롤러엔 하나의 뷰 템플릿만 매치가 되는것인가???
코딩 자율학습 스프링 부트 3 자바 백엔드 개발 입문
만들면서 배우는 친절한 백엔드 개발 자습서
www.gilbut.co.kr