EL(Expression Language)은 JSP의 표현식을 대체하는 표현 언어로
표현식보다 간결하고 편리하기 때문에 많이 사용됩니다.<%= i %>
JSP 표현식 i는 변수로 사용할 수 있습니다.${ i }
EL 표현식 i는 Attribute 이름입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- jsp 파일은 컴파일을 하게 되면 내부적으로 서블릿 파일로 바뀌게 된다. -->
<!-- html과 java를 자유롭게 다루기 위한게 JSP이다. -->
<div>JAVA 명령어는 JSTL, EL을 사용해야 한다.</div>
<%-- 데이터, 연산자 --%>
<h3> EL - 1.출력, 연산자 가능 (직접데이터 사용가능, 변수(JSTL))</h3>
<ol>
<li>수 출력 : ${10}, ${99.99}</li>
<li>문자(문자열) 출력 : ${"apple"},${'apple'}</li>
<li>연산 : ${10+20},${10-20},${4/5},${5%7}</li>
<li>작다 : ${2<3}, ${2 lt 3}</li>
<li>크다 : ${2>3}, ${2 gt 3}</li>
<li>작거나 같다 : ${2.5<=3.5}, ${2 le 3}</li>
<li>크거나 같다 : ${2.5>=3.5}, ${2 ge 3}</li>
<li>논리연산자 : ${"&&, AND, ||, OR, !, NOT"}</li>
<li>빈문자열 ${null}</li> <!-- null 예외가 나지 않는다. -->
<%-- JSP에서 오류가 나면 서버 컴파일 되는 자바파일을 찾아 보면 편하다. --%>
</ol>
</body>
</html>
- EL은 주로 jsp에서 출력을 하는데 사용된다. 또한 setter,getter와 같은 역할을 한다.
- 또한 pageContext, ServletRequest, HttpSession, ServletContext 에서 값을 꺼낸다.
- 예시
MemberInfo.java
public class MemberInfo {
private String name;
private String id;
private String pwd;
... getter setter
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <!-- JSP 선언부 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>EL - setter, getter 기능을 사용할 수 있다.</h3>
<%-- MemberInfo 객체 발생 --%>
<%-- MemberInfo member = new MemberInfo(); 와 동일하다. --%>
<jsp:useBean id="member" class="com.java.el.MemberInfo"/>
<h3>${member.name}</h3> member 객체의 속성값을 불러온다.
<h3>${member.id}</h3>
<h3>${member.pwd}</h3>
</body>
</html>
위에서 쓰인
${member.name}
의 실제 자바에서 작동하는 코드는 다음과 같다.
MemberInfo member = (MemberInfo) pageContext.findAttribute("member");
String name = member.getName();
객체 Scope에서 Attribute 이름이 같을 경우, Scope가 작은 범위에서 큰 범위로 해당 이름이 존재하는 찾습니다. 예를 들면, pageScope에 member 애트리뷰트가 있고 sessionScope에도 member 애트리뷰트가 있을 때, ${ member }
은 pageScope의 값이 출력될 것입니다.
EL 표기언어 에서는 자주 사용될 수 있는 객체들을 미리 정의해놓았습니다.
내장 객체
pageScope | page Scope에 접근하기 위한 객체 |
reqeustScope | request Scope에 접근하기 위한 객체 |
sessionScope | session Scope에 접근하기 위한 객체 |
applicationScope | application Scope에 접근하기 위한 객체 |
param | 파라미터 값을 가져오기 위한 객체 |
header | 헤더 값을 가져오기 위한 객체 |
cookie | 쿠키 값을 가져오기 위한 객체 |
initParam | JSP 초기 파라미터를 가져오기 위한 객체 |
pageContext | pageContext 객체에 접근하기 위한 객체 |
'WEB > Servlet,JSP' 카테고리의 다른 글
서블릿에 MyBatis 적용하기 (0) | 2020.07.14 |
---|---|
JSTL(Java server page Standard Tag Library)란? (0) | 2020.06.12 |
컨텍스트 리스너(Context Listener)란?? (0) | 2020.06.10 |
쿠키(Cookie)와 세션(Session) (0) | 2020.06.09 |
sendRedirect, include, forward의 차이점 (0) | 2020.06.09 |