길민호(ethan.mino)
코딩수첩
길민호(ethan.mino)
전체 방문자
오늘
어제
  • 분류 전체보기 (215)
    • Computer Science (0)
    • Web (6)
      • CSS (0)
      • HTML (0)
    • Node.js (0)
    • Javascript (2)
    • Java (46)
      • Spring (27)
      • Jsp (0)
    • C\C++ (2)
    • Programming (0)
    • AI (0)
    • Database (7)
    • Git (5)
    • Algorithm (119)
      • Stack (0)
      • Queue (0)
      • Linked List (0)
      • Sort (0)
      • Simulation (27)
      • Recursion (0)
      • Backtracking (4)
      • Two Pointer (3)
      • Dynamic Programming (19)
      • Greedy (10)
      • Graph (3)
      • Dijkstra (1)
      • BFS\DFS (8)
      • Floyd (1)
      • MST (4)
      • Tree (4)
      • Binary Search (8)
      • Binary Search Tree (4)
    • IntelliJ (4)
    • Vscode (0)
    • Operating System (0)
    • 후기 (3)
    • 성장일지 (13)
    • 스터디 (7)
    • 설치 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅡ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
길민호(ethan.mino)

코딩수첩

EL(Expression Language)이란?
Java

EL(Expression Language)이란?

2020. 7. 9. 17:27

1. EL이란?

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

2. EL이 제공하는 기능

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

3. EL 문법 

${expr}
  • expr - EL이 정의한 문법에 따라 값을 표현하는 식
  • EL은 JSP의 스크립트 요소(스크립트 릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용될 수 있다.
  • 예제
<jsp:include page="/module/${skin.id}/header.jsp" flush="true"/>
<b>${sessionScope.member.id}</b>님 환영합니다.

 

4. EL의 기본 객체

 

EL 기본 객체 사용 예

<%@ page contentType = "text/html;charset=utf-8" %>
<%
	request.setAttribute("name", 홍길동);
%>

<html>
    <head>
    	<title>EL Object</title>
    </head>
    
    <body>
    	요청 URI : ${pageContext.request.requestURL} <br>	<!-- pageContext.getRequest().getRequestURI()--> 
        request의 name 속성 : ${requestScope.name} <br> <!-- request.getAttribute("name") -->
        code 파라미터 : ${param.code}  <!-- request.getParameter("code") -->
    </body>
</html>

 

5. EL의 데이터 타입

  • 불리언 타입 - true, false
  • 정수 타입 - 0 ~ 9로 이루어진 정수 값(음수의 경우 '-'가 붙음)
  • 실수 타입 - 0 ~ 9로 이루어져 있으며, 소수점을 사용할 수 있고, 3.24e3과 같이 지수형으로 표현 가능하다.
  • 문자열 타입 - 따옴표(' 또는 ")로 둘러싼 문자열. 만약 작은 따옴표(')를 사용해서 표현할 경우 값에 표함된 작은 따옴표는 \'와 같이 \ 기호와 함께 사용해야한다.
  • \ 기호 자체는 \\로 사용한다.
  • 널 타입 - null

6. 객체 접근 규칙

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

7. EL의 수치 연산자

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

8. 논리 연산자

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

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

  • empty <값>
    • <값>이 null이면 true를 반환
    • <값>이 빈 문자열("")이면 true를 반환
    • <값>이 길이가 0인 배열이면 true를 반환
    • <값>이 빈 Map이면 true를 반환
    • <값>이 빈 Collection이면 true를 반환
    • 이 외의 경우에는 false를 반환.
  • 예제
수식 ? <값 1> : <값 2>
<수식>의 결과값이 true이면 <값1>을 리턴, false이면 <값2>를 리턴.

 

10. 연산자 우선순위

  • [] 
  • ()
  • - (단일) not ! empty
  • * / div % mod
  • + -
  • < > <= >= lt gt le ge
  • == != eq ne
  • && and
  • || or
  • ? :

11. EL 비활성화 JSP에 명시하기

  • <%@ page isELIgnored = "true" %>
  • servlet 2.4 버전부터는 EL이 기본적으로 사용됨. (2.4 이전의 버전에서는 EL이 기본적으로 무시됨)

 

 

 

참조 URL

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

 

'Java' 카테고리의 다른 글

JDBC란?  (0) 2020.07.11
JSTL(JSP Standard Tag Library)이란?  (0) 2020.07.09
Scope란?  (0) 2020.07.08
Jsp (JavaServer Pages)  (0) 2020.07.07
JUnit이란?  (0) 2020.07.01
    'Java' 카테고리의 다른 글
    • JDBC란?
    • JSTL(JSP Standard Tag Library)이란?
    • Scope란?
    • Jsp (JavaServer Pages)
    길민호(ethan.mino)
    길민호(ethan.mino)
    💻 호기심 많은 서버 개발자 길민호입니다.

    티스토리툴바