0%
Expression Language
표현 언어가 제공하는 기능
- JSP의 scope에 맞는 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- Java class method 호출 기능 제공
- 표현 언어만의 기본 객체 제공
- Java 코드보다 조금 깔끔하게 JSP 파일을 작성 할 수 있다.
표현언어의 표현 방법
1 2
| <jsp:include page="/module/${skin.id}/header.jsp" flush="true"/> <b>${sessionScope.member.id}</b>님 환영합니다.
|
표현 언어의 데이터 타입
- boolean type: true, false
- integer type: 0-9
- floating point type
- string type: 따옴포 (‘ or “)로 둘러싼 문자열
- 작은 따옴표를 사용해서 표현할 경우 값에 표현된 작은 따옴표는 '와 같이 \기호와 함께 사용해야 한다.
- \ 기호 자체는 \ \로 표시한다.
- null type: null
객체 접근 규칙
- expr1이 expr2가 null이면 null을 반환한다.
- expr1이 Map일 경우 expr2를 key로한 값을 반환한다.
- expr1이 List나 Array이면, expr2가 정수일 경우 해당 정수번째 index에 해당하는 값을 반환한다.
- expr1이 객체일 경우는 expr2에 해당하는 getter method에 해당하는 method를 호출한 결과를 반환한다.
수치 연산자
+
, -
, *
, /
or div
- 숫자가 아닌 객체와 수치 연산자를 사용할 경우 객체를 숫자 값으로 변환 후 연산자를 수행 : ${“10”+1} → ${10+1}
- 숫자로 변환할 수 없는 객체와 수치 연산자를 함께 사용하면 에러를 발생 : ${“열”+1} → 에러
- 수치 연산자에서 사용되는 객체가 null이면 0으로 처리 : ${null + 1} → ${0+1}
비교 연산자
==
또는 eq
!=
또는 ne
<
또는 lt
>
또는 gt
<=
또는 le
>=
또는 ge
- 문자열 비교:
${str == '값'}
str.compareTo("값") == 0
과 동일
논리 연산자
&&
또는 and
||
또는 or
!
또는 not
표현 언어 비활성화
1
| <%@ page isELIgnored = "true" %>
|
empty
연산자
- 값이 비어 있거나 zero 값인 경우
true
를 리턴 그외의 경우 false
를 리턴
비교 선택 연산자
1 2 3
| <expr> ? <value1> : <value2>
- `<expr>`의 값이 `true`이면 value1을 리턴하고, `false`이면 value2를 리턴
|
Scope별 EL의 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <% pageContext.setAttribute("p1", "page scope value"); request.setAttribute("r1", "request scope value"); session.setAttribute("s1", "session scope value"); application.setAttribute("a1", "application scope value"); %> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> pageContext.getAttribute("p1") : <%=pageContext.getAttribute("p1") %> pageContext.getAttribute("p1") : ${pageScope.p1}<br> request.getAttribute("r1") : ${requestScope.r1}<br> session.getAttribute("s1") : ${sessionScope.s1}<br> application.getAttribute("a1") : ${applicationScope.a1}<br> <br><br> pageContext.getAttribute("p1"): ${p1}<br> request.getAttribute("r1"): ${r1}<br> session.getAttribute("s1"): ${s1}<br> application.getAttribute("a1"): ${a1}<br> </body> </html>
|
EL 연산
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setAttribute("k", 10); request.setAttribute("m", true); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> k: ${k }<br> k + 5: ${ k + 5 }<br> k - 5: ${ k - 5 }<br> k * 5: ${ k * 5 }<br> k / 5: ${ k div 5 }<br>
k: ${k }<br> m: ${m }<br>
k > 5: ${ k > 5 }<br> k < 5: ${ k < 5 }<br> k <= 10: ${k <= 10 }<br> k >= 10: ${k >= 10 }<br> m: ${m }<br> !m: ${!m }<br>
</body> </html>
|