EL

 

① EL 표현식

 

EL은 "$"와 "{}"를 사용하여 값을 표현한다. {}안에는 값으로 표현되는 것만 와야 한다.

 

ex)

x변수의 값을 출력하고 싶으면  ${x}

배열변수 arr의 1번째 인덱스의 값을 출력하고 싶으면 ${arr[0]} or ${arr['0']}

member변수의 getName()값을 출력하고 싶으면 ${member.name} or ${member['name']}

 

② EL 기본객체(내장객체)

 

EL에는 jsp/servlet의 객체(pageContext제외)의 속성값이나 파라미터 값등을 쉽게 표현하기 위해서 기본객체를 제공한다.

 

* EL(Expression Language)이 제공하는 11개의 기본 객체

 기본 객체 설 명
 pageContext pageContext 객체 참조
 pageScope page 영역 참조
 requestScope request 영역 참조
 sessionScope session 영역 참조
 applicationScope application 영역 참조
 param 요청 파라미터의  값을 String으로, request.getParameter()의 결과와 동일
 paramValue 요청 파라미터의  값을 String[]으로, request.getParameterValues()의 결과와 동일
 header 요청 header 정보, request.getHeader()의 결과와 동일
 headerValues 요청 header 정보를 배열, request.getHeaders()의 결과와 동일
 cookie 쿠키 참조, request.getCookies()결과와 동일
 initParam 컨텍스트의 초기화 파라미터, application.getInitParameter(이름)의 결과와 동일하다.


ex)

${requestScope.data} --> request.getParameter("data");

${sessionScope.id} --> session.getParameter("id");

${applicationScope.address} --> application.getParameter("address");

 

※ scope는 생략이 가능하다. ${sessionScope.id}를 ${id}라고 표현할 수 있다. 생략하면 작은 영역순으로 찾게 된다.

request에서 id를 찾고, 없으면 session 없으면, application순으로...

 

③ EL의 연산자

 

표현식 {}안에서 연산자(수치, 비교, 논리, empty, !empty) 사용이 가능하다.


  • 수치연산자 : +, -, *,  /(div를 사용해도 된다), %(mod를 사용해도 된다)
  • 비교연산자 : ==(eq를 사용해도 된다) , !=(ne를 사용해도 된다), <(lt를 사용해도 된다), >(gt를 사용해도 된다), <=(le를 사용해도 된다), >=(ge를 사용해도 된다)
  • 논리연산자 : &&(and를 사용해도 된다), ||(or를 사용해도 된다), !(not를 사용해도 된다)
  • empty연산자 : 참조값이 null, 문자값이 "", 배열의 길이가 0, 비어있는 List/Set/Map 인경우에는 true를 리턴하고 그외의 경우에는 false를 리턴 


ex)

${1+2} --> 3

${"1"+2} --> 3 : "1"을 숫자 1로 변환후 연산

${"일"+2} --> 에러!

${null + 1} --> 1 : null을 숫자 0로 변환후 연산

${3/2} --> 1.5 나누기 연산은 double타입으로 변환뒤 연산

 

${2==2} --> true

${2!=2} --> false  // ${2 ne 2} 도 사용가능

${2>1} --> true

 

${true && false} --> false // && 대신 and 사용가능

${true || false} --> true // ||대신 or 사용가능

${!false} --> true

 

${empty x} --> x의 값이 null이면 true

${!empty x} --> x의 값이 null이 아니면 true




'Web Develop. > JSP' 카테고리의 다른 글

JSP 페이지 구성요소  (0) 2014.10.12
Include Directive  (0) 2014.09.30
<jsp:include>  (0) 2014.09.30
EL(Expression Language)  (0) 2014.09.23

+ Recent posts