안녕하세요. 각성한 데브키라입니다. Spring Boot에서 Thymeleaf를 사용하여 index.html 파일을 출력하는 방법을 단계별로 설명하겠습니다. 아래는 index.html을 출력하기 위한 전체 설정과 코드입니다.
1. Gradle 의존성 추가
먼저, build.gradle 파일에 Thymeleaf 의존성을 추가해야 합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
}
이 의존성을 추가한 후, Gradle을 리프레시하여 Thymeleaf 템플릿 엔진을 포함한 라이브러리가 다운로드되도록 합니다.
2. 컨트롤러 클래스 작성
index.html을 반환할 기본 컨트롤러를 작성합니다. @Controller를 사용하여 / 경로에 대해 index.html을 반환하도록 설정합니다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping("/")
public String index() {
return "index"; // "index"는 src/main/resources/templates/index.html을 의미
}
}
3. index.html 템플릿 작성
Thymeleaf는 기본적으로 src/main/resources/templates 폴더에 위치한 HTML 파일을 템플릿으로 사용합니다. 이 폴더에 index.html 파일을 생성합니다.
src/main/resources/templates/index.html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf Example</title>
</head>
<body>
<h1>Welcome to Thymeleaf!</h1>
<p>현재 시간: <span th:text="${currentTime}">현재 시간</span></p>
</body>
</html>
4. 현재 시간 추가 (선택 사항)
컨트롤러에서 Model을 사용하여 현재 시간을 전달할 수 있습니다. 이를 위해 HomeController를 수정하여 현재 시간을 전달하는 방법을 추가합니다.
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.time.LocalDateTime;
@Controller
public class HomeController {
@GetMapping("/")
public String index(Model model) {
model.addAttribute("currentTime", LocalDateTime.now().toString()); // 현재 시간을 모델에 추가
return "index"; // "index"는 templates/index.html을 의미
}
}
5. 애플리케이션 실행
애플리케이션을 실행한 후, 브라우저에서 http://localhost:8080/로 접속합니다. 그러면 index.html 템플릿이 Thymeleaf 엔진을 통해 렌더링되어 출력됩니다.
Gradle로 애플리케이션을 실행하려면 아래 명령어를 사용합니다:
./gradlew bootRun
6. 추가 설정
- 정적 자원 (CSS/JS): src/main/resources/static 폴더에 CSS나 JavaScript 파일을 넣으면 자동으로 사용할 수 있습니다.
- 템플릿 캐시 비활성화 (개발 중일 때): application.properties 파일에 캐시 비활성화를 추가할 수 있습니다.
spring.thymeleaf.cache=false
요약
- Gradle 의존성 추가
- HomeController에서 index.html 반환 설정
- index.html 템플릿 작성 및 Thymeleaf 표현식 사용
- Model을 사용해 동적 데이터 추가 (선택 사항)
위의 단계들을 따라 하시면 Spring Boot와 Thymeleaf를 통해 index.html 파일을 성공적으로 출력할 수 있습니다.
'JAVA' 카테고리의 다른 글
Springboot Project 04 - Mybatis셋팅 (1) | 2024.11.18 |
---|---|
Springboot Project 03 - 스프링부트(Spring boot)throw new SilentExitException(); 디버그 해결방법 (1) | 2024.11.17 |
Springboot Project 01 - 프로젝트 초기셋팅 (0) | 2024.11.17 |
Error: Spring Boot에서 커스텀 에러 페이지 설정하기 (1) | 2024.11.04 |
Error: Spring boot 500에러에 관하여 (0) | 2024.11.04 |