표현 언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.
표현 언어가 제공하는 기능
1. JSP의 스코프에 맞는 속성 사용
2. 집합 객체에 대한 접근 방법 제공
3. 수치 연산, 관계 연산, 논리 연산자 제공
4. 자바 클래스 메소드 호출 기능 제공
5. 표현 언어만의 기본 객체 제공
표현 언어의 표현 방법
문법
${expr}
expr - 표현 언어가 정의한 문법에 따라 값을 표현하는 식예제
<b>${sessionScope.member.id}</b>님 환영합니다.
el01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
pageContext.setAttribute("p1", "page scope value");
request.setAttribute("r1", "request scope value");
request.setAttribute("s1", "session scope value");
request.setAttribute("a1", "application scope value");
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
pageContext.getAttribute("p1") : <%= pageContext.getAttribute("p1") %><br>
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>
body 안에 첫 번째 줄은 jsp문법으로 작성하였고, 그 다음줄은 EL로 작성하였다. 결과에는 차이가 없는 것을 볼 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setAttribute("k", 10);
request.setAttribute("m", true);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
k : ${k } <br>
k + 5 : ${ k + 5 } <br>
k - 5 : ${ k - 5 } <br>
k * 5 : ${ k * 5 } <br>
k / 5 : ${ k div 5 } <br>
k : ${k } <br>
m : ${m } <br>
k > 5 : ${ k > 5 } <br>
k < 5 : ${ k < 5 } <br>
k <= 10 : ${k <= 10 } <br>
k >= 10 : ${k >= 10 } <br>
m : ${ m } <br>
</body>
</html>
<%@ page isElIgnored = "true" %>
이 코드를 jsp에 사용하면 el은 사용되지 않고 그냥 문자 그 자체가 출력된다.