아래 두가지 방식을 실습 위주로 설명 드리겠습니다. (실습환경: IntelliJ)
1. static welcome page
2. thymeleaf 템플릿 엔진
1. static welcome page (정적 파일 동작) => View
It first looks for an `index.html` file in the configured static content locations.
스프링 부트가 제공하는 welcome page기능인데요.
html 파일을 만들어서 static 디렉토리에 넣어주면 되겠네요.
(resource/static/index.html)
<!DOCTYPE HTML>
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
정적 파일 동작 확인하는 예제입니다.
</body>
</html>
로그를 읽어보니 port 8080에서 작동 중이네요.
브라우저을 통해 view 확인할 수 있죠.
2. thymeleaf 템플릿 엔진(동적 환경) => View
https://en.wikipedia.org/wiki/Thymeleaf
뷰 템플릿 엔진이며 컨트롤러의 리턴값을 웹 브라우저 출력되도록 하는 역할을 수행합니다.
https://spring.io/guides/gs/serving-web-content/
가이드 참고하여 실습을 진행해보겠습니다.
1. 타임리프 라이브러리를 추가해줍니다.
2. build.gradle - 타임리프 라이브러리 확인
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
3. Controller 생성 (main/java/controller/greetingController)
model 객체를 생성하여 String 데이터를 view로 전달합니다.
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class greetingController {
@GetMapping("greeting") // url/greeting
public String greeting(Model model) {
model.addAttribute("name", "greeting!!!!");
return "greeting"; // related with templates
}
}
4. template html 파일 생성 (src/main/resources/templates/greeting.html)
Thymeleaf parses the `greeting.html` template.
스프링 부트 템플릿 엔진의 기본 뷰네임 매핑 방식인 듯 하네요. `templates/`+{viewname}+`.html`
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${name}" >안녕하세요. 환영합니다.</p>
</body>
</html>
5. 출력
[출처]
'Spring' 카테고리의 다른 글
STEP2 회원 리포지토리 인터페이스 생성 (0) | 2023.11.06 |
---|---|
STEP1 회원 도메인 객체 생성 (0) | 2023.11.06 |
자바 코드를 통해 살펴본 클래스(Class) (0) | 2023.11.04 |
003. 스프링 웹 개발 기초 스터디 2편 (1) | 2023.10.21 |
001. Spring boot 로드맵과 강의 커리큘럼 (0) | 2023.10.20 |