본문 바로가기
Java

EL (Expression Language)

by titlejjk 2023. 6. 13.

JSP(JavaServer Pages)의 EL(Expression Language)표현식이란 JSP 페이지에서 자바 코드를 보다 간결학 쉽게 작성 할 수 있게 도와주는 언어이다.

EL은 JSP2.0버전부터 도입되었으며, 자바 빈(JavaBeans)과 웹 컨테이너의 스코프(Scope)객체에 접근하고 조작할 수 있는 표현식 언어이다.

 

EL의 개념

  • EL은 ${} 기호를 사용하여 표현식을 감싸고 사용한다. 예를 들어 , ${user.name}은 "user"라는 이름의 자바 빈 객체의 "name"프로퍼티 값을 나타낸다.
  • EL은 문자열, 숫자, 불리언, 배열, 리스트, 맵 등 다양한 데이터 유형을 지원한다.
  • EL은 JSP페이지의 범위(Scope)에서 데이터를 가져올 수 있으며, request, session, application등 다양한 범위 객체에 접근할 수 있다.
  • EL은 산술 연산, 논리 연산, 비교 연산 등 다양한 연산자를 지원한다.
  • EL은 흐름 제어 구문(if - else, 반복문)을 지원한다.

EL은 JSP페이지에서 데이터를 표시할 때 주로 사용된다. 예를 들어 ${user.name}은 사용자의 이름을 출력하는데 사용될 수 있고 데이터를 수정할 때에는 ${user.name = 'John'}과 같이 값을 변경할 수 있다.

컬렉션과 맵에 접근하여 반복문을 처리하는 등의 작업을 수행하거나 조건문(if-else)을 사용하여 특정 조건에 따라 다른 내용을 출력할 수도 있다.

 

이 처럼 EL은 JSP페이지에서 자바 코드를 간결하게 작성할 수 있고, 데이터에 접근하고 표시하는데 유용한 도구이다. 

또한 JSTL(JavaServer Pages Standard Tag Library)과 함께 사용될 때 더욱 강력한 기능을 제공한다. JSTL은 다양한 태그 라이브러리를 포함하고 있으며, 데이터 처리, 조건문, 반복문 등을 보다 쉽게 처리할 수 있도록 도와준다.

 

EL 표기법

더보기

${}

JSP가 실행될 때 바로 반영이 된다.

객체 프로퍼티 값을 꺼내 사용할때 주로 사용한다.

더보기

#{}

시스템상 필요하다고 할때 그 값을 사용한다.

사용자 입력값을 객체의 프로퍼티 안에 담는 용도로 사용한다(Object)

 

EL의 다양한 예제

  1. 변수 접근👉
    -${user.name} : "user"라는 이름의 자바 빈의 "name"프로퍼티 값을 표시한다.
    -${bookList} : "bookList"라는 이름의 리스트 객체를 표시한다.
  2. 산술 연산👉
    -${num1 + num2} : "num1"과 "num2"변수의 합을 계산한다.
    -${price * quantity} : "price"와 "quantity"변수를 곱한 값을 계산한다.
  3. 논리 연산👉
    -${loggedIn && isAdmin} : "loggedIn"과 "isAdmin"변수가 모두 true인 경우를 확인한다.
    -${age >= 18 || hsPermission} : "age"가 18 이상이거나 "hasPermission"변수가 true인 경우를 확인한다.
  4. 조건문👉
    -${user.age >= 18 ? "성인" : "미성년자"} : "user"객체의 "age"가 18이상이면 "성인", 그렇지 않으면 "미성년자"를 표시한다.
  5. 반복문👉
    -<c:forEach var = "book" items = "${bookList}"> : "bookList"라는 리스트 객체를 반복하여 각 요소를 "book"이라는 변수로 접근한다.
  6. 컬렉션 접근👉
    -${mapData['key']} : "mapData"라는 맵 객체에서 "key"에 해당하는 값을 가져온다.
  7. 속성 접근👉
    -${requestScope.attributeName} : "request"스코프에 있는 "attributeName"속성 값을 가져온다.

EL을 배우기 전에는 <% %>를 사용해 자바 문법이나 객체를 꺼내는 코드를 작성했다. <% %>을 사용하지 않기에 보다 훨씬 가독성 좋고 보다 간결하게 코드를 작성할 수 있다.

'Java' 카테고리의 다른 글

JAVA Cookie  (0) 2023.06.13
간단히 보는 JAVA의 자료구조  (0) 2023.06.13
JAVA Filter  (0) 2023.05.31
JAVA Session scope  (0) 2023.05.31
JAVA JSP  (0) 2023.05.30

댓글