상세 컨텐츠

본문 제목

Expression Language

Java

by 탑~! 2014. 12. 10. 16:42

본문

expression Language

EL


1) 기본 문법 : 표현 언어는 다음과 같이 맨 앞에 $기호를 사용하고 중괄호 (‘{’와 ‘}’) 안에 표현식을 넣어 사용한다.


${expression}


위의 expression에는 EL에서 정의한 문법에 알맞은 표현식이 들어간다. ${expression}을 평가(evaluation)한 후의 결과 값은 브라우저에 실제로 출력 된다. ${expression}을 평가한 결과가 null인 경우에는 특별한 에러 없이 브라우저로 어떠한 내용도 전달되지 않는다.

 

2) EL의 사용 위치 : JSP 코딩 내에서 EL이 사용될 수 있는 위치는 다음 다섯 가지 중 하나이다.


- 일반적인 텍스트 내

- 표준 HTML 태그 속성 값 부분

- JSP 액션 태그의 속성 값 부분

- JSTL로 정의된 태그의 속성 값 부분

- 커스텀 태그로 정의된 태그의 속성 값 부분


3) 작성법

${myObj.myProperty}

${myObj["myProperty"]}

${myObj['myProperty']}




JSP의 스크립트릿에서 선언한 객체를 JSTL 및 EL에서 활용가능한 객체로 만들어 주는 방법


<%

List list = new LinkedList();

list.add("a");

list.add("b");

list.add("c");

list.add("d");


pageContext.setAttribute("list3"list); //request, session, application 기본 객체를 활용

%>

리스트3 원소 출력 2: ${list3[1]} <br/>

리스트3 원소 출력 3: ${list3[10]} <br/>

리스트3 원소 출력 4: ${list3[a]} <br/>



<c:set var="list2" value="<%= list %>" />


리스트2 원소 출력 2: ${list2[1]} <br/>

리스트2 원소 출력 3: ${list2[10]} <br/>

리스트2 원소 출력 4: ${list2[a]} <br/>



EL 산술연산자

EL 산술연산자


<%@ page contentType="text/html; charset=euc-kr" %>

<% request.setCharacterEncoding("euc-kr");%>

<html>

<body>

1. 6 + 7 = ${6+7<br/>

2. 8 x 9 = ${8*9} <br/>

3. 1 > (4/2) : ${1 > (4/2)} <br/>

4. 5==: ${5==5<br/>

56 gt : ${6 gt 7<br>

6. 4.0 >= : ${4.0 >= 3<br/>

8100.0 == 100 : ${100.0 == 100<br/>

9. (10*10) ne 100: ${(10*10) ne 100<br/>

10. 'a' < 'b' : ${'a' < 'b'<br/>

11. 'hip' gt 'hit': ${'hip' gt 'hit'<br/>

12. 3 div : ${3 div 4<br/>

1310 mod : ${10 mod 4<br/>

14empty param.name: ${empty param.name} <br/> <!-- 주목 : name 파라미터가 존재유무.


</body>

</html>




EL 기본객체활용예

EL 기본객체

EL 기본 객체

설명

일반 객체

pageContext

JSP 페이지의 Context를 대표하는 객체. JSP의

pageContext 기본 객체와 동일하다. servletContext,

session, request, response 객체를 접근할 수 있는 방법을

제공한다.(EL 기본 객체 중 유일하게 Map객체가 아니다.)

Scope 관련 기본 객체의 Attribute을 포함하는 Map 객체

pageScope

JSP의 pageContext 기본 객체에 저장된 Attribute에 대한

<이름, 값> 매핑을 저장한 Map 객체

requestScope

JSP의 request 기본 객체에 저장된 Attribute에 대한 <이

름, 값> 매핑을 저장한 Map 객체

sessionScope

JSP의 session기본 객체에 저장된 Attribute에 대한 <이

름, 값> 매핑을 저장한 Map 객체

applicationScope

JSP의 application기본 객체에 저장된 Attribute에 대한

<이름, 값> 매핑을 저장한 Map 객체

다양한 정보들을 제공하는 Map 객체

param

JSP의 request 기본 객체가 지닌 Parameter에 대한 <이

름, 값> 매핑을 저장한 Map 객체. (값은 String 타입이다.)

paramValues

JSP의 request 기본 객체가 지닌 Parameter에 대한 <이

름, 값 배열> 매핑을 저장한 Map 객체. (값 배열은

String[] 타입이다.) * request.getParameterMap() 이 리턴

하는 객체와 같은 객체

header

JSP의 request 기본 객체가 지닌 Header에 대한 <이름,

값> 매핑을 저장한 Map 객체. (값은 String 타입이다.)

headerValues

JSP의 request 기본 객체가 지닌 Header에 대한 <이름,

값 배열> 매핑을 저장한 Map 객체. (값 배열은 String[] 타입이다.)

initParam

JSP의 application기본 객체가 지닌 초기화 Parameter에

대한 <이름, 값> 매핑을 저장한 Map 객체.

cookie

JSP의 request 기본 객체가 지닌 Cookie 정보에 대한 <이

름, 쿠키 객체> 매칭을 저장한 Map 객체. (매핑에서 값에

해당하는 쿠키 객체의 타입은 javax.servlet.http.Cookie)이다.



JSP 기본 객체와 pageContext 기본 객체

JSP 기본객체

JSP의 pageContext 기본

객체를 활용한 같은 표현

EL의 pageContext 기본

객체를 활용한 같은 표현

Java 클래스

(타입)

request

pageContext.getRequest()

${pageContext.request}

javax.servlet.http.HttpServletRequest

response

pageContext.getResponse()

${pageContext.response}

javax.servlet.http.HttpServletResponse

session

pageContext.getSession()

${pageContext.session}

javax.servlet.http.HttpSession

application

pageContext.getServletContext()

${pageContext.servletContext}

javax.servlet.ServletContext




EL 기본객체활용예

EL 기본객체활용예


가. session기본 객체에 저장된 Attribute인 profile의 값

${sessionScope.profile}


나. session기본 객체에 저장된 Attribute인 cart 객체의 numberOfItems 멤버 속성 값

${sessionScope.cart.numberO fItems}


다. JSP의 컨텍스트 경로 (context path)

${pageContext.request.contextPath}


라. request 기본 객체가 지닌 Parameter인 productId의 값

${param.productId} 또는 ${param["productId"]}


마. request 기본 객체가 지닌 Parameter중 여러 개의 값을 지닌 productId의 모든 값

${paramValues.productId} 또는 ${paramValues["productId"]}


바. request 기본 객체가 지닌 Parameter인 userName의 값

<html>

<head>

<title>Customer Profile for ${param["username"]}</title>

</head>

<body>

...

</body>

</html>


사. request 기본 객체가 지닌 Header인 host의 값

${header["host"]} 또는 ${header.host}


사1. request 기본 객체에 저장된 Attribute인 profile의 값

${requestScope.profile}

${profile}


아. pageContext 기본 객체에 저장된 Attribute인 pageColor의 값

<body bgcolor="${pageScope.pageColor}">

또는 <body bgcolor="${pageScope['pageColor']}">






<%@ page contentType="text/html; charset=euc-kr"%>

<html>

<head>

<title>EL 테스트</title>

</head>

<body>

<form method="get" action="el_testProcess.jsp">

이름 : <input type="text" name="name"><br/>

관심 상품:

<input type="checkbox" name="pID" value="컴퓨터" checked>컴퓨터

<input type="checkbox" name="pID" value="mP3" checked>mP3

<input type="checkbox" name="pID" value="휴대폰" checked>휴대폰<br/>

<input type="submit" value="완료">

</form>

</body>

</html>




//el_testProcess.jsp


 

<%@ page contentType="text/html; charset=euc-kr" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ page import="java.util.Calendar" %>

<% request.setCharacterEncoding("euc-kr");%>

<%

Calendar cal = Calendar.getInstance();

session.setAttribute("profile""이것은 session에 저장된 profile 속성 값입니다.");

session.setAttribute("cart", cal);

pageContext.setAttribute("pageColor""#99FFCC");

%>


<html>

<body bgcolor="${pageScope.pageColor}">


sessionScope.profile : ${sessionScope.profile}<br/>

sessionScope.cart.time : ${sessionScope.cart.time}<br/>

pageContext.request.contextPath : ${pageContext.request.contextPath}<br/>

param.name : ${param.name}<br/>

paramValues.pID[0] : ${paramValues.pID [0]}<br/>

paramValues.pID[1] : ${paramValues.pID [1]}<br/>

paramValues.pID[2] : ${paramValues.pID [2]}<br/>

${header.host}


</body>

</html>



'Java' 카테고리의 다른 글

Java Email 전송  (0) 2014.12.19
Java Excel 파일 생성  (0) 2014.12.19
JSTL  (0) 2014.12.10
특정 url 소스 가져오기  (0) 2014.09.02
java document를 chm 파일로 다운로드  (0) 2014.06.10

관련글 더보기