본문 바로가기
IT/WEB

EL(표현 언어) 문법 및 정리

by 어센트 2020. 5. 15.

EL(Expression Language)

값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.

기능

  • JSP의 스코프에 맞는 속성사용
  • 집합 객체에 대한 접근 방법 제공
  • 수치 연산, 관계 연산, 논리 연산자 제공
  • 자바 클래스 메소드 호출 기능 제공
  • 표현언어만의 기본객체 제공

표현방법

${expr}

<jsp:include page ="/module/${skin.id}"/header.jsp" flush="true"/>

${sessionScope.member.id}/ 님 환영합니다.

표현언어 기본객체

img

)

img

EL의 데이터 타입

  • boolean
  • 정수
  • 실수
  • 문자열
  • null

객체 접근 규칙

img

  • 표현 1이나 표현 2가 null이면 null을 반환한다.
  • 표현1이 Map이라면 표현2를 key로 반환
  • 표현 1이 List,배열이면 표현2가 정수일 경우 해당 정수 번째 index에 해당하는 값을 반환한다.
  • 만약 정수가 아닐경우 오류가 발생
  • 표현 1이 객체인 경우 표현2에 해당하는 getter메소드에 해당하는 메소드를 호출한 결과를 반환한다.

연산자

수치 연산자

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / 또는 div : 나눗셈
  • % 또는 mod : 나머지
  • 숫자가 아닌 객체와 수치 연산자를 사용할 경우 객체를 숫자 값으로 변환 후 연산자를 수행 : ${"10"+1} → ${10+1}
  • 숫자로 변환할 수 없는 객체와 수치 연산자를 함께 사용하면 에러를 발생 : ${"열"+1} → 에러
  • 수치 연산자에서 사용되는 객체가 null이면 0으로 처리 : ${null + 1} → ${0+1}

비교 연산자

  • == 또는 eq
  • != 또는 ne
  • < 또는 lt
  • > 또는 gt
  • <= 또는 le
  • >= 또는 ge
  • 문자열 비교: ${str == '값'} str.compareTo("값") == 0 과 동일

논리 연산자

  • && 또는 and
  • || 또는 or
  • ! 또는 not

empty연산자, 비교선택 연산자

img

  1. EL표기법을 이용한 예제
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
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
 
<%
 
    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>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
 
pageContext.getAttribute("p1") : <%=pageContext.getAttribute("p1")%> <br><p>
 
pageContext.getAttribute("p1") : ${pageScope.p1 } <!--EL표기법이용 --> <br>
    
pageContext.getAttribute("r1") : ${requestScope.r1 } <!--EL표기법이용 --> <br>
pageContext.getAttribute("s1") : ${sessionScope.s1 } <!--EL표기법이용 --> <br>
pageContext.getAttribute("a1") : ${applicationScope.a1 } <!--EL표기법이용 --> <br><p>
 
pageContext.getAttribute("p1") : ${p1} <!-- 공통된 인자가 없을 경우 이런 방식으로 표현가능 -->     <br>
pageContext.getAttribute("r1") : ${r1 } <!--EL표기법이용 --> <br>
pageContext.getAttribute("s1") : ${s1 } <!--EL표기법이용 --> <br>
pageContext.getAttribute("a1") : ${a1 } <!--EL표기법이용 --> <br>
 
</body>
</html>
cs

2. EL표기법 연산자 예제

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
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    
    <%@ page isELIgnored="false"%>  <!--  EL 무시하고싶을 떄 true로 하면됨-->
 <%
     request.setAttribute("k"10); //정수형 데이터
  
      request.setAttribute("m"true); //boolean 데이터
 %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
        k : ${k}<br>
        
        k+5 :${k+5 }<br>  
        k+5 :${k-5 }<br> 
        k+5 :${k*5 }<br> 
        k+5 :${k div 5 }<br> 
        
        <p>
        k:${k}<br>
        m:${m}<br>
        
        k > 5:${k>5 }<br>
        k < 5:${k < 5 }<br>
        k <= 10:${k <= 10 }<br>
        k >= 10:${k >= 10}<br>
        
        m:${m }<br>
        !m:${!m }<br>
        
            
</body>
</html>
cs

출처

https://www.edwith.org/boostcourse-web/lecture/16714/

 

[LECTURE] 1) EL(Expression Language) : edwith

들어가기 전에 jsp에서 표현식을 이용해 값을 출력할 때 변수의 값이 null이면 화면에 null이 출력되었습니다. 이 경우 null인지를 check한 후 null이면 아무것도 없... - 부스트코스

www.edwith.org

 

'IT > WEB' 카테고리의 다른 글

Maven 개념  (0) 2020.05.22
데이터베이스 개념정리 (mysql)  (0) 2020.05.22
Scope 개념 및 실습  (0) 2020.05.13
JSP개념  (0) 2020.05.12
Ajax통신의 이해  (0) 2020.05.12