스프링 부트는 JSP를 공식 지원하지 않는다. 내장 톰캣에 JSP 엔진이 없기 때문에 따로 추가해주어야 한다.
//JSP
implementation "org.apache.tomcat.embed:tomcat-embed-jasper"
//JSTL - 스프링 부트 3.0 이상
implementation 'jakarta.servlet:jakarta.servlet-api'
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
톰캣의 JSP 엔진인 Japser( Details : 🔗 Tomcat 10 Jasper 2 JSP Engine How To )와 JSTL 관련 의존성을 추가한다.
├── resources
│ ├── mapper
│ ├── static
│ └── templates
스프링 부트의 템플릿 엔진은 위와 같은 디렉토리 구조를 사용한다. 이니셜라이저를 통해 미리 만들어져 있다.
└── webapp
└── WEB-INF
└── views
JSP를 사용하기 위해 webapp
과 그 하위 디렉토리를 생성해준다.
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
스프링이 뷰 파일을 찾기 위한 prefix
(경로), suffix
(확장자)를 설정해준다. 뷰 리졸버는 이 정보를 참고해 뷰 파일을 찾는다.
톰캣은 기본적으로 webapp
을 웹 애플리케이션 디렉토리로 인식하기 때문에 따로 webapp
의 경로를 설정할 필요는 없다. ( 이전 포스팅 참고 : 🔗 Spring Legacy Project 생성 )
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "home";
}
}
/WEB-INF/views/
하위에 home.jsp
를 만들고 컨트롤러를 생성했다. 서버를 시작하고 브라우저에 URL을 입력해보면 정상적으로 JSP 페이지가 뜬다.