본문 바로가기
교재 실습/자바 웹 개발 워크북

54. EL 사용하기 (3)

by Jint 2022. 6. 26.

5. 연산자

EL 블록에서도 간단한 연산을 수행할 수 있다. EL에서 제공하는 연산자 중 몇몇은 기호뿐만 아니라 동일한 기능의 영문으로 된 연산자도 있다. 다음은 EL에서 지원하는 주요 연산자에 대한 설명이다.

 

- 산술 연산자

EL에서 제공하는 산술 연산자에는 더하기(+), 빼기(-), 곱하기(*), 나누기(/, div), 나머지(%, mod) 값을 구하는 연산자가 있다(그림 1).

<%//EL표현식 - 산술 연산자%>
<%-- '${' 앞에 '\'가 붙으면 '${'은 EL 문법이 아닌 일반 텍스트로 취급한다. --%>
\${10 + 20} = ${10 + 20}<br/>
\${10 - 20} = ${10 - 20}<br/>
\${10 * 20} = ${10 * 20}<br/>
\${10 / 20} = ${10 / 20}<br/>
\${10 div 20} = ${10 div 20}<br/>
\${10 % 20} = ${10 % 20}<br/>
\${10 mod 20} = ${10 mod 20}<br/>

그림 1 (실행 결과)

 

- 논리 연산자

EL에서 제공하는 논리 연산자는 AND(&&, and), OR(||, or), NOT(!, not) 이 있다(그림 2).

<%//EL표현식 - 논리 연산자%>
\${true && false} = ${true && false}<br/>
\${true and false} = ${true and false}<br/>
\${true || false} = ${true || false}<br/>
\${true or false} = ${true or false}<br/>
\${not true} = ${not true}<br/>
\${!true} = ${!true}<br/>

그림 2 (실행 결과)

 

- 관계 연산자

EL에서 제공하는 관계 연산자는 같다(==, eq), 같지 않다(!=, ne), 크다(>, gt), 작다(<, lt), 크거나 같다(>=, ge), 작거나 같다(<=, le) 가 있다(그림 3).

<%//EL표현식 - 관계 연산자%>
\${10 == 11} = ${10 == 11}<br/>
\${10 eq 11} = ${10 eq 11}<br/>
\${10 != 11} = ${10 != 11}<br/>
\${10 ne 11} = ${10 ne 11}<br/>
\${10 < 11} = ${10 < 11}<br/>
\${10 lt 11} = ${10 lt 11}<br/>
\${10 > 11} = ${10 > 11}<br/>
\${10 gt 11} = ${10 gt 11}<br/>
\${10 <= 11} = ${10 <= 11}<br/>
\${10 le 11} = ${10 le 11}<br/>
\${10 >= 11} = ${10 >= 11}<br/>
\${10 ge 11} = ${10 ge 11}<br/>

그림 3 (실행 결과)

 

- empty

'empty'는 값이 비어 있거나 null인지를 조사할 때 사용하는 연산자이다. 값이 null이면 true를 반환한다. 또한, 문자열과 배열, Map, Collection 객체의 크기가 0인 경우에도 true를 반환한다. 그 밖에는 false를 반환한다(그림 4).

<%
//EL표현식 - empty
//pageContext에 값 준비
pageContext.setAttribute("title", "EL 연산자!");
%>
\${empty title} = ${empty title}<br/>
\${empty title2} = ${empty title2}<br/>

그림 4 (실행 결과)

 

- 조건

자바의 조건 연산자와 쓰임이 같다. 'A ? B : C'에서 A 조건이 참이면 B를 실행하고, A 조건이 거짓이면 C 조건을 실행한다.

<%//EL표현식 - 조건%>
\${10 > 20 ? "크다" : "작다"} = ${10 > 20 ? "크다" : "작다"}<br/>

그림 5 (실행 결과)

 

6. 예약 키워드

다음은 EL에서 사용하거나 사용하기로 예약한 키워드이다.

and, or, not, eq, ne, lt, gt, le, ge, true, false, null, instanceof, empty, div, mod

JspContext나 ServletRequest, HttpSession, ServletContext 보관소에 객체를 저장할 때, 그 식별자(키)는 EL의 예약 키워드 이름과 같아서는 안 된다. EL을 사용하지 않는다면 문제가 되지 않겠지만, EL을 사용한다면 오류가 발생할 것이다. 다음 예제는 객체 식별자의 이름이 예약 키워드의 이름과 같을 때, 오류가 발생하는 것을 보여준다(그림 6).

<%
//EL표현식 - 예약키워드
//pageContext에 값 준비
pageContext.setAttribute("ne", "오호라!");
%>
<%-- pageContext에서 값 꺼내기 --%>
${ne}

그림 6 (객체 식별자가 예약 키워드의 이름과 같을 때 오류 발생)

 

참고도서 : https://freelec.co.kr/book/1674/

 

[열혈강의] 자바 웹 개발 워크북

[열혈강의] 자바 웹 개발 워크북

freelec.co.kr

'교재 실습 > 자바 웹 개발 워크북' 카테고리의 다른 글

56. JSTL 사용하기 (1)  (0) 2022.06.28
55. EL 사용하기 (4)  (0) 2022.06.27
53. EL 사용하기 (2)  (0) 2022.06.25
52. EL 사용하기 (1)  (0) 2022.06.23
51. JSP 액션 태그의 사용 (2)  (0) 2022.06.22

댓글