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

+ Recent posts