- 들어가기 전에
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 |
댓글