21. EL( Expression Language )
EL( Expression Language )
- 표현 언어
- EL은 스크립트릿<% %> 또는 표현식<%= %>을 좀더 간단하고 이해하기 쉽도록 표현하며, 속성값들을 좀더 쉽게 접근할수 있다.
- EL은 내장객체를 가지고 있어 코드를 줄일수 있고 JSTL과 같이 사용된다.
1) 형식 ${표현식}
2) EL연산자들
[],.,(),-,not,empty,*,/,+,div,%,mod, <,>,<=,>=, lt,gt,le,ge,!,==,!=,eq,ne,&&,and,||,or,...
3) EL 내장객체
pageScope,requestScope,sessionScope,applicationScope,param, paramValues, header, headerValues, cookie, initParam,..
EX>
<%@page import="test.beans.Member"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
10 + 20 = <%=10 + 20%><BR/>
위의 문자를 el로 바꿔보면<br/>
10 + 20 = ${10 + 20 }<br/>
10==20 : ${10==20}<br/>
10>20: ${10 gt 20}<br/>
10 < 20 : ${10 lt 20 }<br/>
8 mod 5: ${8 mod 5}<br/>
8%5: ${ 8 % 5 }<br/>
<%
String id="song";
String pwd="1234";
request.setAttribute("id",id);
request.setAttribute("pwd",pwd);
session.setAttribute("name", "홍길동");
%>
<%--
<%
String id1 = (String)request.getAttribute("id");
String pwd1 = (String)request.getAttribute("pwd");
%>
id:<%=id1 %><br/>
pw:<%=pwd1 %><br/>
--%>
<!-- el로 바꿔보면 -->
id:${requestScope.id }<br/>
pwd:${requestScope.pwd }<br/>
<%--
EL은 스코프에 대한 내장객체를 갖고 있어 스코프에 저장된 속성들을 쉽게 접근할 수 있다.
pageScope, requestScope, sessionScope, applicationScope
==> 스코프객체는 생략가능하며, 스코프명이 생략되면
page < request < session < application 순으로 자동 찾아준다.
--%>
name:${sessionScope.name }<br/>
name:${name}<br/> <!-- 중복이 아닌경우 이름만 써도 찾아 준다. -->
<%--
내장객체 : param --> 파라미터에 대한 정보를 갖음.
--%>
<!-- 파라미터로 전달된 num값 얻어오기
http://localhost:8081/day07_jstl/test01_EL.jsp?num=100&name=kim
-->
num:${ param.num }<br/>
name:${ param.name }<br/>
<%
Member vo = new Member("song","1234","song@daum.net","010-111-1234",null);
//세션에 vo 객체 담기
session.setAttribute("vo", vo);
%>
<%
Member mm=(Member)session.getAttribute("vo");
%>
아이디:<%=mm.getId() %> <br/>
비밀번호:<%=mm.getPwd() %><br/>
이메일:<%=mm.getEmail() %></br>
전화번호:<%=mm.getPhone() %></br>
EL로 바꿔보면<BR/>
<!-- 내부적으로 getter메소드가 호출됨. -->
아이디:${sessionScope.vo.id }<br/>
비밀번호:${sessionScope.vo.pwd }<br/>
</body>
</html>