easycode

[Spring] SpringBoot 3.x 버전에서 JSTL 사용 방법 본문

Spring

[Spring] SpringBoot 3.x 버전에서 JSTL 사용 방법

ez() 2023. 12. 18. 14:35

개인적으로 공부를 하던 중, Springboot 3.x 버전에서는 더는 implementation 'javax.servlet.jsp.jstl:jstl:1.2' 로 JSTL dependency를 사용할 수 없다는 걸 깨달았습니다.  javaEE를 사용하던 Springboot 2.x 버전과 달리 Springboot 3.x 버전부터는 jakartaEE를 사용하기 때문입니다(상표권 이슈로 변경되었다고 합니다)

작지만 제 글이 누군가에게 도움이 되길 바랍니다.

 

 

Springboot 3.x 버전에선 다음과 같이 JSTL을 사용할 수 있습니다.

 

1. dependency 추가

 

Gradle

// jstl (이하 3개)
    implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0'
    implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0'
    implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1'

 

Maven

        	<dependency>
			<groupId>jakarta.servlet.jsp.jstl</groupId>
			<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
			<version>3.0.0</version>
		</dependency>
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>6.0.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.glassfish.web</groupId>
			<artifactId>jakarta.servlet.jsp.jstl</artifactId>
			<version>3.0.1</version>
		</dependency>

 

 

2. JSP 페이지에 아래 코드 추가

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

저는 core만 사용했는데, JSTL은 아래와 같은 종류가 있습니다.

종류 접두사 URL
코어 (변수 지원, 제어문 등) c http://java.sun.com/jsp/jstl/core
포맷(포맷, 국제화 지원) fmt http://java.sun.com/jsp/jstl/fmt
함수 (String 처리 등) fn http://java.sun.com/jsp/jstl/fuctions
데이터베이스 (DB CRUD 등) sql http://java.sun.com/jsp/jstl/sql

 

위 표를 참조하여 url과 prefix(접두사)를 변경하며 사용하시면 됩니다.