0%
  
  
    
      
      
    
  
  
  
    
    
      
      
      
    
    
      
    
    
    
      
    
    
    
    
        Expression Language
- 표현 언어가 제공하는 기능 - 
- JSP의 scope에 맞는 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- Java class method 호출 기능 제공
- 표현 언어만의 기본 객체 제공
- Java 코드보다 조금 깔끔하게 JSP 파일을 작성 할 수 있다.
 
- 표현언어의 표현 방법 | 12
 
 | <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를 리턴
비교 선택 연산자
| 12
 3
 
 | <expr> ? <value1> : <value2>
 - `<expr>`의 값이 `true`이면 value1을 리턴하고, `false`이면 value2를 리턴
 
 | 
Scope별 EL의 사용
| 12
 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 연산
| 12
 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>
 
 |