EL(Expression Language)란?
EL이란?
EL이란 Expression Language의 약자로서 JSP에서 자바코드를 더욱 간결하게 하기 위해 만들었다.
어떻게보면 완벽하게 자바 코드를 JSP에서 걷어내고 EL을 통해 가독성을 높이고자 한 것이다.
다른 JSP 파일로 입력한 숫자값을 전달하는 form을 가진 JSP 파일이 있다고 가정해보자.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="NewFile4.jsp" method="get">
<input type="text" name="num">
<input type="submit">
</form>
</body>
</html>
일반 JSP 파일에서는 위와 같은 form을 통해 전달된 파라미터 num을 받기 위해
아래와 같이 자바 코드를 삽입한다.
하지만 EL을 사용하면 아래와 같이 간략하게 표현이 가능하다.
파라미터로 넘어오는 값 중 이름이 num인 값을 출력하겠다는 의미다. 결과물도 당연히 같다.
EL의 기본 표현법
EL을 사용하기 위해서는 아래와 같이 $ 기호 뒤에 중괄호 { }를 붙이고 그 안에 표현식을 넣으면 된다.
- ${ 표현식 }
${'EL입니다'} => "EL입니다" 출력
${ 5*2 } => 10 출력
EL은 단순히 전받은 값만 나타내는 것이 아니라 중괄호 안에서 위의 코드처럼 연산도 가능하다.
그리고 EL을 통해 나타낼 수 있는 자료형태는 아래와 같다.
입력값 |
형태 |
출력값 |
${5} |
정수 |
5 |
${4/3} |
실수 |
1.3333333333333333..... |
${'문자열'} |
문자열 (작은따옴표써야 함) |
"문자열" |
${param.num > 5} |
boolean |
만약 이름이 'num'이 파라미터 값 5보다 크면 true, 아니면 false |
${ null } |
null |
공백인 문자열 |
EL에서 사용 가능한 연산자
일부 연산자는 영어 알파벳으로 된 연산자를 추가적으로 지원하는데
이는 HTML 태그나 JSP 내 자바코드들을 쓸 때 사용하는 %, <> 등의 기호와 구분하기 위해 쓴다.
종류 |
연산자 |
설명 |
산술 연산자 |
+ |
더하기 |
- |
빼기 |
|
* |
곱하기 |
|
/ 또는 div |
나누기 |
|
% 또는 mod |
나머지 |
|
비교 연산자 |
== 또는 eq |
같음 |
!= 또는 ne |
다름 |
|
> 또는 gt |
왼쪽이 큼 |
|
< 또는 lt |
오른쪽이 큼 |
|
>= 또는 ge |
왼쪽이 크거나 같음 |
|
<= 또는 le |
오른쪽이 크거나 같음 |
|
논리연산자 |
&& 또는 and |
and |
|| 또는 or |
or |
|
! 또는 not |
not |
|
empty |
empty |
표현식 안의 값이 비어있을 경우 true 반환 |
not empty |
표현식 안의 값이 비어있지 않으면 false 반환 |