본문 바로가기
Progamming/BoostCourse

EL(Expression Language)

by 동그란 혜주 2019. 1. 21.
  • 들어가기 전에

jsp에서 표현식을 이용해 값을 출력할 때 변수의 값이 null이면 화면에 null이 출력되었다. 이 경우 null인지를 chek한 후 null이면 아무것도 없는 문자열을 출력해야 하는 등 불편한 과정을 거쳐야한다. EL을 사용하면 좀 더 편리하게 변수를 JSP에서 사용할 수 있다.




  • 학습 목표

1. EL을 이해한다.

2. EL을 사용할 수 있다.




  • 핵심 개념

- EL

- isELIgnored




  • 표현 언어란?

- 표현 언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.

* 더 직관적인, FE 개발자나 디자이너들이 봐도 어렵지 않고 이질적이지 않는 방법은 없을까-하는 고찰에서 부터 출발..




  • 표현 언어가 제공하는 기능

- JSP의 스코프(scope)에 맞는 속성 사용

- 집합 객체에 대한 접근 방법을 제공

- 수치 연산, 관계 연산, 논리 연산자 제공

- 자바 클래스 메소드 호출 기능 제공

- 표현언어만의 기본 객체 제공




  • 표현 언어의 표현 방법





  • 표현 언어의 기본 객체




  • 표현 언어의 기본 객체 사용 예




  • 표현 언어의 데이터 타입

- 불리언 타입 : true/false

- 정수 타입 : 0 ~ 9로 이루어진 정수 값, 음수의 경우 -가 붙음

- 실수 타입 : 0 ~ 9로 이루어져 있으며, 소수점 . 을 사용할 수 있고, 3.24e3과 같이 지수형으로 표현 가능하다.

- 문자열 타입 : 따옴표 (' 또는 ")로 둘러싼 문자열. 만약 작은 따옴표(')를 사용해서 표현할 경우, 값에 포함된 작은 따옴표는 \'과 같이 \ 기호와 함께 사용해야 한다.

- \ 기호 자체는 \\로 표시한다.

- 널 타입 : null




  • 객체 접근 규칙

- ${<표현1>.<표현2>}

- 표현 1이나 표현 2가 null이면 null 반환

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

- 표현 1이 List나 배열이면 표현 2가 정수일 경우, 해당 정수번째 index에 해당하는 값을 반환한다.

- 만약 정수가 아닐 경우에는 오류가 발생한다.

- 표현 1이 객체일 경우는 표현 2에 해당하는 getter 메소드에 해당하는 메소드를 호출한 결과를 반환한다. (ex. Student.name)




  • 표현 언어의 수치 연산자

- + : 덧셈

- - : 뺄셈

- * : 곱셈

- / 또는 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 연산자, 비교선택 연산자

- empty <값>

· <값>이 null 이면 true를 리턴한다.

· <값>이 빈 문자열(" ")이면 true를 리턴한다.

· <값>이 길이가 0인 배열이면 true를 리턴한다.

· <값>이 빈 Map이면 true를 리턴한다.

· <값>이 빈 Collection이면 true를 리턴한다.

· 이 외의 경우에는 false를 리턴한다.


- <수식> ? <값1> : <값2>

· <수식>의 결과 값이 true면 <값1>을 리턴하고, false면 <값2>를 리턴




  • 연산자 우선순위

1. []

2. ()

3. - (단일) not ! empty

4. * / div % mod

5. + -

6. < > <= >= lt gt le ge

7. == != eq ne

8. && and

9. || or

10. ? :




  • 표현 언어 비활성화 : JSP에 명시하기

- <%@ page isELIgnored = "true" %>

· 기본 default 값은 false

· 상단에 추가하게되면 EL은 무시되고 자체로 표현됨

'Progamming > BoostCourse' 카테고리의 다른 글

DB와 DBMS  (0) 2019.01.22
JSTL(JSP Standard Tag Library)  (0) 2019.01.21
application scope  (0) 2019.01.21
session scope  (0) 2019.01.21
request scpoe  (0) 2019.01.21

댓글