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
'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 |