[JSP] 10. 표현언어(EL)

Min's Study Note·2023년 11월 17일
0

JSP

목록 보기
12/16

▣ 표현 언어란..??

  • 표현 언어(Expression Language, EL)는 변수의 값을 출력할 때 사용하는 스크립트 언어
  • 표현식(<%= %>)과 다른점은 4가지 영역에 저장된 값을 출력하는 것
  • 사용법이 매우 간결하고, 예외와 형변환에 관대하다는 특징이 있음
  • 기능
    - JSP 내장 객체의 영역에 담긴 속성을 사용
    - 산술 연산, 비교 연산, 논리 연산이 가능
    - 자바 클래스에 정의된 메서드를 호출할 수 있음
    - 표현 언어만의 객체를 통해 JSP와 동일한 기능 수행

▣ 기본사용법

${ 속성 }

  • 영역에 저장된 속성을 출력
  • 스크립틀릿에서 저장한 변수는 사용할 수 없음
<h2>${ reuqestScope.saveVar }</h2> ⇐ request영역에 저장된 속성 출력
<c:set var="elVar" value="${ elVar }" /> ⇐ JSTL과 함께 사용
<jsp:include page="${ pathVar }" /> ⇐ 액션태그와 함께 사용
<%! void myMethod(${ errorVar }) { } ⇐ 선언부에서 사용했으므로 에러 발생
%>
<%@ include file="${ errorVar }" %> ⇐ 스크립틀릿에서 사용했으므로 에러 발생
<%= ${ errorVar } %> ⇐표현식에서 사용했으므로 에러 발생

▣ 객체 표현방식

  • EL에서 객체를 표현할때는 .(점) 이나 를 사용
${ param.name } ⇐ 점으로 표현
${ param["name"] } ⇐ 더블쿼테이션 사용
${ param['name'] } ⇐ 싱글쿼테이션 사용
  • 속성명에 특수기호나 한글이 포함된 경우에는 대괄호만 사용 가능
${ header["user-agent"] } ⇐ 속성명에 특수기호가 포함되어 대괄호 사용
${ header.user-agent } ⇐ 에러발생
${ King['한글'] } ⇐ 속성명이 한글이면 대괄호 사용
${ King.한글 } ⇐ 에러발생
  • 대괄호 사용시에는 “(큰따옴표)와 ‘(작은따옴표) 모두 사용 가능

▣ 4가지 영역에 속성값 저장하고 읽어오기

▣ EL의 연산자

▣ 할당 연산자

  • 초기의 EL은 할당이 불가능했지만, EL3.0부터 할당이 가능해짐.
  • 단, 할당과 동시에 출력되므로 세미콜론과 작은따옴표를 함께 사용.

▣ 할당 연산자

  • +, -, * : 덧셈, 뺄셈, 곱셈
  • / 또는 div : 나눗셈
  • % 또는 mod : 나머지

▣ 논리 연산자

  • && 또는 and : 논리 And
  • || 또는 or : 논리 Or
  • ! 또는 not : 논리 No

▣ 비교 연산자

  • 또는 gt : Greater Than( ~보다 크다.)

  • = 또는 ge : Greater than or Equal( ~보다 크거나 같다.)

  • < 또는 lt : Less Than( ~보다 작다.)
  • <= 또는 le : Less than or Equal( ~보다 작거나 같다.)
  • == 또는 eq : EQual( 같다.)
  • != 또는 ne : Not Equal( 같지 않다. 즉 다르다.)
    [Note] Java에서 사용하던 연산자는 동일하게 사용가능. 여기에 추가로 EL에서 사용할 수 있는 문자형태의 연산자가 추가로 제공되어 편의성을 제공함.

▣ 핵심요약

  • EL은 내장 객체를 통해 4가지 영역에 저장된 속성값을 읽을 수 있음
  • 전송된 폼값이나 객체를 EL을 통해 읽을 수 있음
  • 컬렉션을 보다 쉽게 사용할 수 있음
  • 자바에서 제공하는 연산자와 함께 문자 형태의 연산자를 추가로 사용할 수 있음
  • JSP 코드를 직접 사용할 수는 없지만, 메서드를 호출할 수 있는 기능을 제공

0개의 댓글