🌐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" %>

 

 

반응형