본문 바로가기
Web

EL(Expression Language)

by 유서담 2024. 2. 19.

EL(Expression Language)

 

  • 표현 언어
  • JSP 2.0부터 jsp에 포함된 기술
  • EL은 값을 표현할 때 사용되는 스크립트 언어

 

EL 의 기능

  • 요청파라미터 값, 초기화파라미터 값의 표현
  • PageContext, 요청객체, 세션객체, 애플리케이션 객체의 속성값 표현
  • 요청헤더정보, 쿠키 값의 표현
  • 사칙연산, 비교연산, 논리연산자, 기타 연산자제공
  • 메소드 호출 기능 제공

 

EL의 형식

 

${EL표현식}

  <p>${표현식}</p>
  <img src="resources/images/${표현식}" />
  <input type="text" name="username" value="${표현식}" />
  <a href="list.hta?pageNo=${표현식}&cateNo=${표현식}">링크</a>
  <div id="box-${표현식}"> ... </div>

 

 

 

EL 연산자

 

사칙연산

연산 연산자 사용사례
덧셈 + ${표현식 + 표현식}
뺄셈 - ${표현식 - 표현식}
곱셈 * ${표현식 * 표현식}
나눗셈 div ( /도 가능하다) ${표현식 div 표현식}
나머지 mod ( %도 가능하다) ${표현식 mod 표현식}

 

 

 

비교연산

연산 연산자 사용사례
크다 gt ${표현식 gt 표현식}
크거나 같다 ge ${표현식 ge 표현식}
작다 lt ${표현식 lt 표현식}
작거나 같다 le ${표현식 le 표현식}
같다 eq ${표현식 eq 표현식}
같지 않다 ne ${표현식 ne 표현식}

 

 

 

논리연산

연산 연산자 사용사례
논리곱 and ${표현식 gt 10000 && 표현식 eq 'VIP'}
논리합 or ${표현식 gt 50000 or 표현식 eq 5}
논리부정 not ${not 표현식 eq 'VIP')

 

 

기타연산

연산 연산자 사용사례
삼항연산 ? : ${표현식 비교연산자 비교값 ? 값1 : 값2}
논리합 or ${empty 표현식} 혹은 ${not empty 표현식}

 

 

 

empty 연산자가 true를 반환하는 경우

  • 값이 null인 경우
  • "" 빈문자열인 경우
  • 배열이나 콜렉션의 길이가 0인 경우
  • 비어있는 맵인 경우

 

 

EL의 내장객체

EL은 JSP의 요청파라미터, 속성, 스코프, 요청헤더정보, 초기화파라미터 정보에 접근할 수 있도록 해당 값을 제공하는 내장 객체를 가지고 있다

 

내장객체 사용예 설명
param ${param.파라미터명} 요청파라미터값을 조회할 수 있다
request.getParameter("파라미터명")와 동일하다
paramValues ${paramValues.파라미터명} 요청파라미터값을 조회할 수 있다
request.getParameterValues("파라미터명")와 동일하다
pageScope ${pageScope.속성명} PageContext에 저장된 속성(값, 객체)을 조회한다
requestScope ${requestScope.속성명} HttpServletRequest에 저장된 속성을 조회한다
sessionScope ${sessionScope.속성명} HttpSession에 저장된 속성을 조회한다
applicationScope ${applicationScope.속성명} ServletContext에 저장된 속성을 조회한다
initParam ${initParam.초기화파라미터명} 초기화파라미터값을 조회한다
header ${header.요청헤더명} 요청헤더정보에서 헤더명에 해당하는 값을 조회한다
cookie ${cookie.쿠키명} 쿠키명에 해당하는 쿠키값을 조회한다
pageContext ${pageContext.getter메소드이름} PageContext의 getXXX( ) 메소드의 실행결과를 조회한다
JSP의 기본객체를 제공받을 수 있다

 

 

주의사항

  • pageScope, requestScope, sessionScope, applicationScope를 직접 명시해서 속성을 조회하지 말자
  • EL은 ${속성명}으로 표기하면 page, request, session, application의 순서로 해당 속성명으로 저장된 값이 있는지를 탐색
  • 속성을 저장할 떄 동일한 이름으로 다른 Scope에 저장하지만 않으면, 조회할 때 Scope를 앞에 적을 필요가 없다

 

EL의 내장객체 정보

 

내장객체 동작하는 예시

 

 

 

'Web' 카테고리의 다른 글

타임리프  (0) 2024.03.21
JSTL(JSP Standard Tag Library)  (0) 2024.02.21
프로젝트에서 톰캣설정  (0) 2024.01.26
JDBC 프로젝트 개발순서  (0) 2024.01.26
Web_Servlet  (0) 2024.01.15