기억의 DataBase

EL(Express Language) 본문

JSP&Servlet

EL(Express Language)

Zester; 2019. 2. 20. 16:48
  • EL( ${EL} )
표현언어(Express Language)
JSP 문법을 보완(프론드엔드 개발자디자이너가 봐도 이질감이 들지 않게)
 
  • EL의 기능
•JSP의 스코프(scope)에 맞는 속성 사용
집합 객체에 대한 접근 방법 제공
•수치 연산, 관계 연산, 논리 연산자 제공
•자바 클래스 메소드 호출 기능 제공
•표현언어만의 기본 객체 제공

  • 사용예


<% %> / <%! %> / <%= %>안에서는 사용이 불가, <%= %>보다 편리하고 직관적으로 값을 출력할 수 있음

  • EL의 기본객체


   ${sessionScope.id}

  • EL을 사용한 경우와 사용하지 않은 경우 비교


    ${pageContext.request.requestURI}pageContext.getRequest().getRequestURI() 와 같음
    ${requestScope.name}request.getAttribute("name") 과 같음
    ${param.code}request.getParameter("code") 와 같음

  • 객체접근 규칙


표현 1이나 표현 2null이면, null을 반환한다.

표현1이 Map일 경우, 표현2를 key로한 값을 반환한다.

표현1이 List나 배열이면, 표현2가 정수(index)일 경우, index에 해당하는 값을 반환한다.
 (만약 정수가 아닐 경우에는 오류가 발생한다.)

표현1이 객체일 경우는, 표현2에 해당하는 getter메소드에 해당하는 메소드를 호출한 결과를 반환한다.
ex)${<student>,<name>} 은 <%= student.getName() %> 과 같다

  • 표현 언어의 수치 연산자 (또는의 경우는 예약어가 있을 경우, 대용으로 사용가능)
+ : 덧셈
- : 뺄셈
* : 곱셈
/ 또는 div : 나눗셈
% 또는 mod : 나머지
숫자가 아닌 객체수치 연산자를 사용할 경우 객체를 숫자 값으로 변환 후 연산자를 수행 : ${"10"+1} → ${10+1}
숫자로 변환할 수 없는 객체와 수치 연산자를 함께 사용하면 에러를 발생 : ${"열"+1} → 에러
수치 연산자에서 사용되는 객체가 null이면 0으로 처리 : ${null + 1} → ${0+1}

  • 비교 연산자
== 또는 eq
!= 또는 ne
< 또는 lt
> 또는 gt
<= 또는 le
>= 또는 ge
문자열 비교: ${str == '값'} str.compareTo("값") == 0 과 동일

  • 논리 연산자
&& 또는 and
|| 또는 or
! 또는 not

  • empty 연산자와 비교선택 연산자


  • EL 비활성화 : JSP 지시자에 명시
<%@ page isELIgnored = "true" %>


  • 사용예 


저장명이 곂치지 않는 경우 ${저장명} 간단하게 쓰는 것도 가능 , 세미콜론을 쓸 필요가 없으니 주의(;이 그대로 출력됨)

'JSP&Servlet' 카테고리의 다른 글

JSTL(JSP Standard Tag Library)  (0) 2019.02.20
Scope - Page, Request, Session, Application  (0) 2019.02.20
Servlet과 JSP의 연동  (0) 2019.02.19
redirect와 forward  (0) 2019.02.19
JSP 문법과 내장객체  (0) 2019.02.18
Comments