SpringBoot 3.x에 들어서면서 jakarta.XX 패키지가 전면에 들어오면서 여러가지 혼선이 발생했다. 라이센스가 변경되면서 한번은 거쳐야하는 홍역인듯 하다. ㅠㅠ
이번 포스트에서는 SpringBoot 3.x에서 jsp, jstl의 사용 설정에 대해서 살펴보자.
SpringBoot 3.x에서 jsp, jstl 설정
tomcat 10.x
문제의 발단은 SpringBoot에 내장되는 톰켓의 버전이 9.x에서 10.x로 변경되면서 시작되었다.
Tomcat initialized with port(s): 8080 (http)
Starting service [Tomcat]
Starting Servlet engine: [Apache Tomcat/10.1.8]
의존성의 변경
이에 따라 Servlet, JSP, JSTL의 라이브러리 의존성이 변경되었다.
<!-- 기존처럼 JSP를 구동하기 위한 jasper는 필요하다. -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- group id가 jakarta로 변경되었다. 이 녀석은 api 선언으로 jakarta.servlet-api를 포함한다.-->
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
</dependency>
<!-- 이 녀석이 jstl에 대한 구현체-->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
</dependency>