JSP는 문서에서 자바 코드를 제거하는 쪽으로 발전해왔습니다. 자바 코드를 더욱 줄이기 위해 JSP 2.0에서 등장한 것이 표현 언어(EL, Expression Language)
와 JSTL(JSP Standard Tag Library)
입니다.
이 중 표현 언어에 대해서 먼저 알아보고 JSTL로 넘어가도록 하겠습니다.
표현 언어
는 자바 코드가 사용되는 표현식을 더 쉽고 읽기 좋게 사용하기 위해서 사용하는 데이터 출력 기능입니다.
기존 표현식은 <%=자바 코드 %>
와 같은 형태로 사용했었는데요. 이전 포스트들에서 표현식은 입문 수준이라서 간단한 변수명 정도만 썼지만, 실제 서비스에서는 표현식에 들어가는 자바 코드들이 복잡해지기 시작했습니다. 그래서 이를 대체하고자 표현 언어
가 등장하게 된 것 입니다.
표현 언어
는 다음과 같이 사용합니다.
${표현언어 또는 값}
표현 언어
의 특징은 다음과 같습니다.
표현 언어
는 기본 설정으로는 JSP에서 바로 사용할 수 없습니다. 페이지 디렉티브 태그에서 isELIgnored=false
설정을 해주어야 표현 언어를 사용할 수 있게 됩니다.
표현 언어
는 자체적인 자료형을 사용할 수 있습니다. 표현 언어
의 자료형은 다음과 같습니다.
타입 | 설명 |
---|---|
논리형 | true, false |
정수형 | 10진수와 양의 정수, 음의 정수 |
실수형 | 소수점, 지수 e |
문자열 | 따옴표로된 문자열('' , "" 둘 다 가능) |
null | null |
표현 언어
에서는 연산자도 사용할 수 있습니다. 표현 언어
에서 사용되는 연산자는 다음과 같습니다. 자바처럼 연산자 기호를 사용할 수도 있고, 이를 대체하는 단어로도 사용할 수 있습니다.
연산자 | 설명 |
---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ 또는 div | 나눗셈 |
% 또는 mod | 나머지 연산 |
== 또는 eq | 두 값이 같은지 비교 |
!= 또는 ne | 두 값이 다른지 비교 |
< 또는 lt | 오른쪽이 더 큰지 |
> 또는 gt | 왼쪽이 더 큰지 |
<= 또는 le | 오른쪽이 같거나 더 큰지 |
>= 또는 ge | 왼쪽이 같거나 더 큰지 |
&& 또는 and | 논리곱 |
or | 논리합 |
! 또는 not | 부정 |
empty 값 | 값이 null, "" 이면 true 반환 |
식? 값1:값2 | 식의 결과가 true면 값1, false면 값2 반환 |
or
는||
기호로도 표현할 수 있습니다. (마크다운 테이블 기호랑 겹쳐서 따로 첨부합니다.)
<%@ page
contentType="text/html;charset=UTF-8"
language="java"
pageEncoding="UTF-8"
isELIgnored="false"
%>
<%-- 반드시 isELIgnored="false"로 설정해야 표현 언어 사용 가능!!! --%>
<html>
<head>
<title>Title</title>
</head>
<body>
10 + 10 = ${10 + 10} <br>
10 / 2 = ${10 div 2} <br>
empty "" = ${empty ""} <br>
empty "hello" = ${empty "hello"}
</body>
</html>