JSP

JSTL이란? JSTL 사용법

PiccoBella 2023. 4. 11. 01:43

■ JSTL이란 

JSTL란  자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library)이고 줄여서 JSTL이라 부른다. 즉 JSTL + EL의 조합을 말한다.

▶ 자바코드를 html태그형식으로 간편하게 사용하기 위해 나온 라이브러리

HTML 코드 내에 java 코드인 스크립틀릿 <%= student %>를 ${student}로,  <%=if %>문을 <c:if>, <%=for%>문을 <c:forEach>로 대체하여 사용한다.

JSP에서 java코드가 들어갈때마다 매번 <% ~~ %> 이 태그를 넣어 사용하면 가독성도 굉장히 떨어지고 사용하기가 불편해진다 그래서 나온것이 JSTL라이브러리이다. 

 

JSTL 사용방법

JSTL을 사용하기 위해서는 JSTL jar 파일과 JSTL 구현체(implementation)를 설치해야 한다.

https://repo1.maven.org/maven2/jstl/jstl/1.2/

설치한 JSTL jar 파일은 tomcat 폴더 > lib 폴더 내부로 이동시킨다.

* Tomcat 도 설치 되어있어야 한다. 

https://tomcat.apache.org/download-90.cgi

 

Index of /maven2/jstl/jstl/1.2/

 

repo1.maven.org

JSTL jar 파일 설치

 

Index of /maven2/jstl/jstl/1.2/

 

repo1.maven.org

 

taglib 선언

JSTL은 라이브러리이기 때문에 사용하기전에 core를 header에 추가해주어야 한다.

uri : 태그 라이브러리의 네임 스페이스 URI 식별자
prefix : JSTL 태그를 사용할때 태그 이름 앞에 붙일 접두사

 

태그 라이브러리 선언문
Core <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
XML <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
I18N <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
Database <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
Functions <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

 

// header에 추가
<% @taglib uri="http://java.sun.com/jstl/core" prefix="c" %>


//body 에 넣어 사용하기 
<c:if test=""></c:if>
<c:forEach items=""></c:forEach>
-----------------------------------------------------------------------------------------------------------------------------------------------------
[예제]
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head> <meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
           <!--JavaServer Pages Standard Tag Library-->
           <!--jstl 문법: 태그 형식으로 코딩하는 방법(디자이너에게 직관적임)-->
           <c:forEach var ="i" begin = "1" end = "10"> ${i}
           </c:forEach>
</body>
</html>

 

■ JSTL core의 태그들

태그명 설명
<c:set> 변수명에 값을 할당
<c:out> 값을 출력
<c:if> 조건식에 해당하는 블럭과 사용될 scope설정
<c:choose> 다른 언어의 switch와 비슷
<c:when> switch문의 case에 해당
<c:otherwise> switch문의 default에 해당
<c:forEach> 다른언어의 loop문 items 속성에 배열을 할당할 수 있음

 

태그 라이브러리 기능 태그 - 부모태그(자식태그)
Core(기본) 변수 remove, set
흐름 제어 choose(when, otherwise)
forEach
forTokens
if
URL 관리 import(param)
redirect(param)
url(param)
기타 catch, out
XML 기본 out, parse, set
흐름 제어 choose(when, otherwise)
forEach
if
변환 transform(param)
I18N(국제화) 로케일 setLocale, requestEncoding
메시지 포맷 bundle
message(param)
setBundle
Database 데이터 소스 설정 setDataSource
SQL query(dateParam, param)
transaction
update(dateParam, param)
Functions(기타 함수) 집합의 원소 개수 length
문자열 처리 toUpperCase
toLowerCase
substring
substringAfter
substringBefore
trim
replace
indexOf
startsWith
endsWith
contains
containsIgnoreCase
split
join
escapeXml

 

'JSP' 카테고리의 다른 글

JSP 웹소켓(WebSocket) 만들고 활용하기  (0) 2023.04.15
MVC 패턴 이란?  (0) 2023.04.14
JSP Scope의 4가지 개념과 쓰임  (0) 2023.04.04
JSP 내부객체  (0) 2023.04.04
JSP(Java Server Pages) 란  (0) 2023.04.03