hoony's web study

728x90
반응형

SpringBoot 3.0 jsp 주의할점


- 개요

본문은 SpringBoot 3.0 에서의 세팅을 다루고 있음을 알려드립니다.

 

SpringBoot 3.0 으로 Jsp 를 설정하던 와중 겪었던 어려움에 대한 해결법입니다.

 

- Servlet

우선 Servlet의 패키지가 변경되었습니다.

 

javax.servlet     =====>    jakarta.servlet

 

SpringBoot 버전업을 원하시는 분들은 해당 사항 주의하시길 바랍니다.

 

- JSP, JSTL

물론, 추세에 따르면 JSP보다는 Vue.js, react 등 별도의 프론트 프레임워크 혹은 라이브러리를

 

이용하고 있지만, 혹시나 모를 JSP 이용자분들을 위해 세팅법을 알려드립니다.

 

기존 SpringBoot 2.x 와는 또 다른 부분들이 있더군요.

 

기존의 제공되는 내장형 tomcat의 의존성을 주석처리 및 제거해주도록 합니다.

[pom.xml]

<!--<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency> -->

 

이후, JSP로 View를 리턴해줄 수 있는 tomcat의 의존성을 주입해주도록 합니다.

[pom.xml]

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

 

이제 JSP 에 대한 resolver를 세팅해줄건데요, bean이 아닌 properties 를 통해 세팅해주도록 하겠습니다.

 

[application.properties]

spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

 

위와같이 본인의 환경에 맞게 세팅을 해주시면 간단하게 완료입니다.

 

이제 JSTL 사용에 대해 알아볼건데요.

 

기존 2.x 에서 사용하듯 의존성을 주입하고 jstl을 사용하려고 하면

 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

JSP내에서 해당 taglib을 못받아오는 에러를 경험해보실 수 있습니다.

 

글의 상단에서 말씀 드렸듯, servlet의 패키지가 변경되었듯 jstl 또한 변경이 있었더군요.

 

그럴땐 아래의 의존성을 주입해주도록 합니다.

 

<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api -->
<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
    <version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl -->
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>3.0.1</version>
</dependency>

 

저의 경우, 위의 3가지의 의존성 주입을 통해 해결이 되었습니다.

 

감사합니다.

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading