Springboot를 통해 프로젝트를 만들 때 Dependencies에 Thymleaf를 추가하여 오류 발생 (추정)
ERROR org.thymeleaf.TemplateEngine : Exception processing template "home": Error resolving template [home], template might not exist or might not be accessible by any of the configured Template Resolvers
이 부분을 해결해보자.
이 오류는 Spring Boot가 JSP 파일을 찾지 못할 때 발생한다. 기본적으로 Spring Boot는 Thymeleaf를 기본 템플릿 엔진으로 사용하기 때문에, JSP를 사용하려면 추가적인 설정이 필요하다.
이번 글에서는 Gradle 프로젝트에서 JSP를 사용할 때 발생하는 오류를 해결하는 방법을 정리한다.
Spring Boot에서 JSP 파일은 src/main/webapp/WEB-INF/views/ 폴더에 위치해야 한다.
(HTML은 templates에 위치하면 되었음)
📌 올바른 위치:
src/main/webapp/WEB-INF/views/home.jsp
❌ 잘못된 위치 (Spring Boot에서 JSP를 인식하지 못함)
src/main/resources/templates/home.jsp (Thymeleaf용 폴더)
만약 JSP 파일이 templates 폴더 안에 있다면, 반드시 WEB-INF/views/로 이동해야 한다.
Spring Boot가 JSP를 찾을 수 있도록 설정을 추가해야 한다.
📌 src/main/resources/application.properties 파일에 아래 내용을 추가한다.
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
이 설정은 Spring Boot가 return "home";을 호출할 때 WEB-INF/views/home.jsp를 찾도록 도와준다.
Spring Boot에서 JSP를 제대로 사용하려면 몇 가지 필수 라이브러리를 추가해야 한다.
📌 build.gradle 파일을 수정한다.
(나의 경우 1번은 있었고 2,3번은 추가했다.)
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'javax.servlet:jstl'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
}
Spring Boot의 기본 패키징 타입은 jar이므로, JSP를 사용하려면 war로 변경해야 한다.
(스프링부트 프로젝트 생성할 때 war 선택하기)
(아래 bootJar, war 부분은 추가했다)
plugins {
id 'org.springframework.boot' version '2.7.5'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
id 'java'
id 'war' // 추가
}
bootJar {
enabled = false
}
war {
enabled = true
}
이 설정을 추가하면 JSP 파일을 정상적으로 인식할 수 있다.
서버 재시작하면 정상 작동한다.
FIN.
MyBatis Mapper 파일 위치: IntelliJ와 Eclipse의 차이 (0) | 2025.02.02 |
---|---|
Spring Boot에서 CSS 파일 로드 오류 해결하기 (1) | 2025.01.28 |
댓글 영역