◽ EL(Expression Language)

[EL(Expression Language) - (1) ] EL(Expression Language) - 표현 언어 : ${ }

EL


   EL은 JSP 스크립트 태그( <%=%> )를 대신하여 JSP 값들을 좀더 편리하게 출력하기 위해 제공되는 언어이다. 예를 들어 <%=hello%>라는 코드를 EL로 표현할 때는 ${hello}로 표현된다. 

 

hello 객체의 test 속성 출력하기


1) ${hello.test}  2) ${hello['test']}  3) ${hello["test"]}

1), 2), 3) 총 3가지로 표현이 가능하다.

 

1) EL의 내장 객체 


내장 객체 설명
pageScope Page 영역에 존재하는 객체를 참조할 때 사용한다.
requestScope Request 영역에 존재하는 객체를 참조할 때 사용한다.
sessionScope Session 영역에 존재하는 객체를 참조할 때 사용한다.
applicationScope Application 영역에 존재하는 객체를 참조할 때 사용한다.
param 파라미터 값을 얻어올 때 사용한다.
paramValues 파라미터 값을 배열로 얻어올 때 사용한다.
header Header 정보를 얻어올 때 사용한다.
headerValues Header 정보를 배열로 얻어올 때 사용한다.
cookie 쿠키 객체를 참조할 때 사용한다.
initParam 컨텍스트의 초기화 파라미터를 의미한다.
pageContext PageContext 객체를 참조할 때 사용한다.

 

 

내장 객체 사용 예시


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    session.setAttribute("test","Session Test");
%>
<html>
<head>
<title>EL 내장객체 사용 예제</title>
<style>
    table{
        width : 400px;
        margin : auto;
        border : 1px solid gray;
        text-align: center;
    }
</style>
</head>
<body>
<form action="el_test2.jsp" method="post">
<table>
    <tr>
        <td>이름 : </td>
        <td><input type="text" name="name" value="홍길동"></td>
    </tr>
    <tr>
        <td colspan=2 align=center><input type="submit" value="입력"></td>
    </tr>
</table>
</form>
</body>
</html>
 
el_test1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%
    request.setCharacterEncoding("UTF-8");
%>
<html>
<head>
<title>EL 내장객체 사용 예제</title>
</head>
<body>
<h3>${sessionScope.test}</h3>
<h3>${param.name }</h3>
</body>
</html>
 
el_test2

 

 

2) EL의 연산자


연산자 설명
. 빈, 맵의 속성에 접근하기 위한 연산자이다.
[ ] 배열, 리스트의 요소 또는 빈
( ) 연산의 우선 순위를 변경할 때 사용한다.
x ? a : b x의 조건이 만족하면 a를 리턴하고, 만족하지 않으면 b를 리턴한다. ( 삼항 연산자 )
empty 값이 NULL이거나 컬렉션의 사이즈가 0일 경우 true를 반환한다.

 

산술 연산자 설명
+, -, *, /, % 더하기, 빼기, 곱하기, 나누기, 나머지 ( 나누기와 나머지는 div, mod로도 가능)

 

논리 연산자 설명
&& 또는 and 두 항의 내용을 모두 만족할 경우 true, 그렇지 않으면 false를 반환한다.
|| 또는 or 두 항의 내용 중 하나라도 만족하면 true, 그렇지 않으면 false를 반환한다.
! 또는 not 값이 만족하지 않으면 true, 만족하면 false를 반환한다. 즉, true는 false로, false는 true로 변경해 주는 연산자이다.

 

비교 연산자 설명
== 또는 eq 두 항의 값이 같으면 true,  그렇지 않으면 false를 반환한다.
!= 또는 ne 두 항의 값이 다르면 false, 그렇지 않으면 true를 반환한다.
< 또는 It '보다 작다'라는 의미를 갖고, 왼쪽 항이 오른쪽 항보다 작으면 true를 반환한다.
> 또는 gt '보다 크다'라는 의미를 갖고, 왼쪽 항이 오른쪽 항보다 크면 true를 반환한다.
<= 또는 le '같거나 작다' ~
>= 또는 ge '같거나 크다' ~

 

EL의 연산자 예제


 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>EL 연산자 사용 예제</title>
</head>
<body>                                // '\'는 뒤의 것이 문자라는 
    <h3>\${5+7} = ${5+7}</h3>
    <h3>\${8-3} = ${8-3}</h3>
    <h3>\${6*3} = ${6*3}</h3>
    <h3>\${9/3} = ${9/3}</h3>
    <h3>\${10%3} = ${10%3}</h3>
    <h3>\${10==9} = ${10==9}</h3>
    <h3>\${5!=7} = ${5!=7}</h3>
    <h3>\${7<8} = ${7<8}</h3>
    <h3>\${8>8} = ${8>8}</h3>
    <h3>\${15<=9} = ${15<=9}</h3>
    <h3>\${7>=2} = ${7>=2}</h3>
    <h3>\${5+3==8 ? 8 : 10} = ${5+3==8 ? 8 : 10}</h3>
</body>
</html>
 
r

푸터바