1. EL ?
1) JSTL(JSP Standard Tag Library) 1.0 규약에 소개된 내용
2) JSP 2.0 에 새롭게 추가된 기능
3) ECMAscript(JavaScript) 와 XPath 의 개념을 이용해서 설계
4) EL에서는 '.' 과 '[ '] 는 동일하게 처리 --> expr.a == expr["a"]
2. 제공하는 기능
1) JSP 의 네가지 기본객체(page, request, session, application)가 제공하는 scope 의 속성 사용
2) 집합 객체에대한 접근 방법 제공
3) 수치 연산, 관계 연산, 논리 연산자 제공
4) Java Class Method 호출 기능 제공
5) 표현 언어만의 기본 객체 제공
3. 표현 방법
${expression}
$ {7} ==> 7
${10 + 20 + 30} ==> 60
${ 스코프변수.속성명} 또는 ${스코프변수["속성명"]}
4. 기본객체
1) pageContext : JSP 의 pageContext 기본객체와 동일
2) pageScope : pageContext 에 저장된 <속성, 값> 매핑의 Map 객체
3) requestScope : request 에 저장된 <속성, 값> 매핑의 Map 객체
4) sessionScope : session 에 저장된 <속성, 값> 매핑의 Map 객체
5) applicationScope : application 에 저장된 <속성, 값> 매핑의 Map 객체
6) param : 요청 파라미터의 <파라미터이름, 값> 매핑의 Map 객체. 값의 타입은 String.
request.getParameter(이름)의 결과와 동일
7) paramValues : 요청 파라미터의 <파라미터이름, 값 배열> 매핑의 Map 객체. 값의 타입은 String [].
request.getParameterValues(이름)의 결과와 동일
8) header : 요청 정보의 <헤더 이름, 값> 매핑의 Map 객체. request.getHeader(이름)의 결과와 동일
9) headerValues : 요청 정보의 <헤더 이름, 값 배열> 매핑의 Map 객체. request.getHeaders(이름)의 결과와 동일
10) Cookie : <쿠키 이름, Cookie) 매핑의 Map 객체. request.getCookies() 로 구한 Cookie 배열로부터 생성
11) initParam : 초기화 파라미터의 <이름, 값> 매핑의 Map 객체.
application.getInitParameter(이름)의 결과와 동일
5. Data Types
1) Boolean : true, false
2) Integer : 0 ~ 9의 정수, 음수표현을 위해 '-' 사용
3) Float : 0 ~ 9의 실수, 소수점('.') 사용, 지수형도 가능
4) String : ' ', " " 의 문자열
5) Null : null
6. Operator
1) 산술연산자 : +, - , *, /(div), %(mod) --> ${"10" + 1}, ${"일" + 10}, ${null + 1}
2) 비교연산자 : ==(eq), !=(ne), <(lt), >(gt), <=(le), >=(ge)
3) 논리연산자 : &&(and), ||(or), !(not)
4) empty 연산자 : 값의 널 여부검사 , empty <값> e.g. ${empty param["name"]}
5) 비교 선택 연산자 : <수식> ? <값1> : <값2>
5) 연산자 우선순위
- [], .
- ()
- -(단항), not, !, empty
- *, / , div, %, mod
- +, -
- <, >, <=, >=, lt, gt, le, ge
- ==, !=, eq, ne
- &&, and
- ||, or
- ? :
7. EL에서 클래스 메소드 호출하는 방법
1) 사용할 클래스 작성한다.
***********************************************************************************************
package eltest;
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateEL {
private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
public static String getFormat(Date date){
return formatter.format(date);
}
}
***********************************************************************************************
2) 함수를 정의할 TLD 파일을 작성한다.
***********************************************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/j2ee"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>EL에서 함수 실행</description>
<tlib-version>1.0</tlib-version>
<short-name>elfunctions</short-name>
<function>
<description>Date 객체 포맷팅</description>
<name>dateFormat</name>
<function-class>eltest.DateEL</function-class>
<function-signature>java.lang.String getFormat(java.util.Date)</function-signature>
</function>
</taglib>
***********************************************************************************************
3) JSP 페이지에서 함수 사용하기
***********************************************************************************************
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ taglib prefix="eltest" uri="/WEB-INF/tlds/el-functions.tld" %>
<%
java.util.Date today = new java.util.Date();
request.setAttribute("today", today);
%>
<html>
<body>
오늘은 <b>${eltest:dateFormat(today)}</b> 입니다.
</body>
</html>
8. EL 비 활성화 방법
1) web.xml 파일에 비활성화 옵션 지정하기
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
2) <%@ page isELIgnored="true" %>
'Programming > JSP' 카테고리의 다른 글
JSP JSTL(표준 태그 라이브러리) (0) | 2011.03.24 |
---|---|
JSP Custom Tag (1) | 2011.03.24 |
JSP DBCP 사용하기 (2) | 2011.03.24 |
JavaBean (2) | 2011.03.24 |
JSP Action Tag (1) | 2011.03.24 |