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를 앞에 적을 필요가 없다
'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 |