🌐web
[Servlet/Jsp] EL 표현 언어 사용법
pkyung
2023. 3. 14. 23:19
반응형
EL (Expression Language)
: EL은 표현 언어로 값을 표현하는데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.
제공하는 기능
- JSP 스코프에 맞는 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치, 관계, 논리 연산자 제공
- 자바 클래스 메소드 호출 기능 제공
- 표현언어만의 기본 객체 제공
EL 표현 방법
${expr}
EL의 기본 객체
기본 객체 | 설명 |
pageContext | JSP의 page 기본 객체와 동일 |
pageScope | pageContext 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
requestScope | request 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
sessionScope | session 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
applicationScope | application 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체 |
param | 요청 파라미터의 <파라미터이름, 값> 매핑을 저장한 Map 객체 |
header | 요청 정보의 <헤더이름, 값> 매핑을 저장한 Map 객체 |
cookie | <코키 이름, Cookie> 매핑을 저장한 Map 객체 |
initParam | 초기화 파라미터의 <이름, 값> 매핑을 저장한 Map 객체 |
객체 접근
${<표현1>, <표현2>}
empty 연산자
empty <값>
<값>이 null, 빈 문자열, 길이가 0인 배열, 빈 Map, 빈 Collection 인 경우 True
그렇지 않으면 False이다.
EL 실습해보기
el01.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
pageContext.setAttribute("p1", "page scope value");
request.setAttribute("r1", "request scope value");
session.setAttribute("s1", "session scope value");
application.setAttribute("a1", "application scope value");
%>
<html>
<head>
<title>el01</title>
</head>
<body>
<p>pageContext.getAttribute("p1"): ${pageScope.p1}</p>
<p>request.getAttribute("r1"): ${requestScope.r1}</p>
<p>session.getAttribute("s1"): ${sessionScope.s1}</p>
<p>application.getAttribute("a1"): ${applicationScope.a1}</p>
<br>
<p>pageContext.getAttribute("p1"):${p1}</p>
<p>request.getAttribute("r1"):${r1}</p>
<p>session.getAttribute("s1"):${s1}</p>
<p>application.getAttribute("a1"):${a1}</p>
</body>
</html>
결과는 아래와 같이 출력되며 이름이 모두 다를 경우에는 변수 이름만 사용이 가능하다.
el02.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setAttribute("k", 10);
request.setAttribute("m", true);
%>
<%@ page isELIgnored="true" %>
<html>
<head>
<title>el02</title>
</head>
<body>
<p>k : ${k}</p>
<p>k + 5 : ${k + 5}</p>
<p>k - 5 : ${k - 5}</p>
<p>k * 5 : ${k * 5}</p>
<p>k / 5 : ${k / 5}</p>
<br>
<p>m : ${m}</p>
<p>!m : ${!m}</p>
<p>k > 5 : ${k > 5}</p>
</body>
</html>
이 코드는 EL을 비활성화하는 코드입니다. 이 코드 없이 실행하면 아래 오른쪽 사진과 같이 실행됩니다.
<%@ page isELIgnored="true" %>
반응형