표현 언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.
자바 코드보다 좀 더 간단하게 사용 가능하여 디자이너, 프론트엔드 개발자가 쉽게 이해할 수 있어야 하는 필요성에 의해 사용됨
Scope, parameter, cookie, header 등의 객체를 제공
표현 언어를 사용하면 우측 자바 코드에 비해 좀 더 직관적으로 결과 값을 디스플레이할 수 있다.
\'
와 같이 \
기호와 함께 사용해야 함\
기호 자체는 \\
로 표시$ {<표현1>.<표현2>}
null
이면 null을 반환한다.Map
일 경우 표현2를 key로한 값을 반환List나 배열
이면 표현2가 정수일 경우 해당 정수 번째 index에 해당하는 값을 반환, 만약 정수가 아닐 경우에는 오류 발생객체
일 경우는 표현2에 해당하는 getter메소드에 해당하는 메소드를 호출한 결과를 반환한다.+
: 덧셈
-
: 뺄셈
*
: 곱셈
/
또는 div
: 나눗셈
%
또는 mod
: 나머지
${"10"+1} → ${10+1}
${"열"+1}
→ 에러${null + 1}
→ ${0+1}
== 또는 eq
!= 또는 ne
< 또는 lt
> 또는 gt
<= 또는 le
>= 또는 ge
문자열 비교: ${str == '값'} str.compareTo("값") == 0 과 동일
&&
또는 and
||
또는 or
!
또는 not
[] .
()
- (단일) not ! empty
* / div % mod
+ -
< > <= >= lt gt le ge
== != eq ne
&& and
|| or
? :
<%@ page isELIgnored = "true" %>
최근 버전에는 기본적으로 활성화된 상태
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- page, request, session, application별로 scope 생성 -->
<%
pageContext.setAttribute("p1", "page scope value");
request.setAttribute("r1", "request scope value");
session.setAttribute("s1", "session scope value");
application.setAttribute("a1", "application scope value");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<H1> JSP 표현식으로 Scope 값을 출력하자!</H1>
pageContext.getAttribute("p1"): <%=pageContext.getAttribute("p1") %><br>
request.getAttribute("r1"): <%=request.getAttribute("r1") %><br>
session.getAttribute("s1"): <%=session.getAttribute("s1") %><br>
application.getAttribute("a1"): <%=application.getAttribute("a1") %><br>
<H1> EL로 Scope 값을 출력하자!</H1>
pageContext.getAttribute("p1"): ${pageScope.p1}<br>
request.getAttribute("r1"): ${requestScope.r1}<br>
session.getAttribute("s1"): ${sessionScope.s1}<br>
application.getAttribute("a1"): ${applicationScope.a1}<br>
</body>
</html>