백엔드/서블릿&JSP

EL(Expression Language)란?

ksge7 2021. 1. 14. 16:51

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 반환