본문 바로가기
✨ Back-end/JSP

[JSP] EL (Expression Language) 과 JSTL (Jsp Standard Tag Library)

by 환풍 2023. 8. 16.
728x90
반응형

EL이란?

EL은 표현을 위한 언어로 JSP 스크립트의 표현식을 대신하여 속성 값을 쉽게 출력하도록 고안된 언어이다.

즉, 표현식 <%= %>를 대체할 수 있다.

EL 표현식에서 도트 연산자 왼쪽은 반드시 java.util.Map 객체 또는 Java Bean 객체여야 한다.

EL 표현식에서 도트 연산자 오른쪽은 반드시 맵의 키이거나 Bean 프로퍼티여야 한다.

 

 

EL 문법 2가지

[ ] 연산자 안의 값이 문자열인 경우, 맵의 키가 될 수도 있고, Bean 프로퍼티나 리스트 및 배열의 인덱스가 될 수 있다.

 

ex) 1

간단한 예시


JSTL (JSP Standard Tag library)

JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다.

표준화된 태그 셋을 사용하여 자바 코드가 들락거리는 것보다 더 코드의 유지보수가 쉽다.

JSTL은 XML 데이터 처리와 조건문, 반복문, 국제화와 지역화 같은 일을 처리하기 위한 JSP 태그 라이브러리를 추가하여 JSP 사양을 확장했다.

 

ex) 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    String[] color={"red","green","blue"};
%>
 
<!-- 1. <c:set> : 변수 설정 -->
<c:set var="num1" value="${10}"/>  <!-- int num1=10; 과 동일 -->
<c:set var="num2">20</c:set>
num1 + num2 =${num1 + num2}<br><br>
 
<!-- 2. <c:remove> : 변수 제거 --> 
<c:remove var="num1"/>
num1 + num2 =${num1 + num2}<br><br>
 
<!-- 3. <c:forEach> : 배열 요소 반복 출력 --> 
<!--  varStatus:상태변수(count, index, current등 사용 가능) -->
<c:forEach items="<%=color%>" varStatus="i">
    ${i.count}&nbsp;&nbsp;&nbsp;${i.current}<br>
</c:forEach><br><br>
 
<!--  4. <c:forTokens> : 토큰 분리  --> 
<c:forTokens items="벤츠,소나타,아우디,BMW,포르쉐" delims="," var="car">
    ${car}&nbsp;&nbsp;&nbsp;
</c:forTokens><br><br>
 
<!--  5. <c:forEach> : 범위 내 숫자 반복 출력 (step 이 있음)  --> 
<!-- 1 2 3 4 5 6 7 8 9 10 --> 
<c:forEach begin="1" end="10" step="2" var="num">
    ${num}&nbsp;&nbsp;&nbsp;
</c:forEach>
</body>
</html>
cs

 

<c:if> 문법도 알아보았다.

 

JSTL 태그를 사용하기 위해선, 아래 라이브러리를 프로젝트 lib 경로에 넣어주어야한다.

jstl-1.2.jar
0.40MB

<%@taglibprefix=“c”uri=“http://java.sun.com/jsp/jstl/core“%>

HTML 선언부에 위 코드를 선언해준다.

728x90
반응형

댓글