이전글
JSP에서 표현 언어 사용 설정
JSP 페이지에서 표현 언어(EL)를 사용하기 위해서는
page 디렉티브
의 isELIgnored
속성을 false
로 설정해주어야 합니다. 그러나 이 속성은 명시하지 않는 경우 기본값이 false
이므로 따로 지정해주지 않아도 됩니다.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %> | cs |
만약 이
isELIgnored
속성을 true
로 하게 되면 표현언어 구문을 해석할때 표현언어가 아닌 단순한 text로 해석하게 됩니다.표현 언어 기본 구성
표현언어는 다음과 같이
${값 또는 표현식}
형태로 사용됩니다.${3 - 1} ${memberId} | cs |
표현언어는 JSP의
스크립트릿
, 표현식
, 선언문
을 제외한 나머지 영역에서 사용가능하며, 다음과 같이 액션태그나 JSTL의 속성값으로도 사용될 수 있습니다.<h1>${post.title}</h1> <jsp:include page="/post/${post.id}/read" flush="true" /> | cs |
표현언어에서 사용되는 자료형
표현언어(EL)에서는 다음과 같이 5가지의 자료형을 제공하고 있습니다.
자료형 |
자바 타입 |
예시 |
설명 |
불리언
|
java.lang.Boolean |
${true}
${3 > 2}
${10 == 10}
|
true와 false값을 가지며, 참 거짓을 표현합니다. |
정수 |
java.lang.Long
|
${777}
|
0 ~ 9로 이루어진 정수를 표현하며, 음수 표현시 -가 붙습니다. |
실수 |
java.lang.Double
|
${3.14}
|
실수를 표현하며 소수점 사용 및 지수형 표현이 가능합니다. |
문자열 |
java.lang.String
|
${'dololak'}
${"dololak"}
|
문자열로 'dololak' 또는 "dololak"으로 표현이 가능합니다. |
null값
|
null
|
${null}
|
null을 표현합니다. 표현언어의 결과가 null인 경우 최종적으로 출력하는 값은 ""(공백문자열) 입니다. |
예제 코드
앞서 말한 내용을 바탕으로 EL을 사용하여 어떤식으로 값이 출력되는지 테스트를 해보도록 하겠습니다. 다음은 EL의
${}
구문을 사용하여 각 자료형별로 값을 출력하는 JSP 코드입니다. GIT 주소<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>EL 자료형 테스트</title> </head> <body> 문자열1 : ${'dololak'} <br> 문자열2 : ${"dololak"} <br> 정수 : ${777} <br> 실수 : ${3.14} <br> 불린 : ${true} <br> null : ${null} <br> </body> </html> | cs |
해당 JSP를 실행해보면 다음과 같이 출력됨을 알 수 있습니다.
${} 표기를 문자열 그대로 출력하고 싶은 경우
만약 다음과 같이 EL 구문을 문자열 그대로 출력하고 싶다면 어떻게 해야 할까요? page 디렉티브의
isELIgnored
값을 true
로 지정해줄수도 있겠지만 이경우 반대로 EL이 적용되지 않는 문제가 있습니다.이러한 경우
$
앞에 \(역슬래시)
를 붙여주기만 하면 됩니다.<h1>\${'dololak'} : ${'dololak'}</h1> | cs |
다음글
'Servlet&Jsp' 카테고리의 다른 글
[서블릿/JSP] 표현 언어(EL)의 내장객체 사용법 (0) | 2019.08.07 |
---|---|
[서블릿/JSP] 표현 언어(EL)의 연산자 규칙 및 사용법. (0) | 2019.08.06 |
[서블릿/JSP] 표현언어(EL)에서 ${}과 #{} 표기법의 차이 (1) | 2019.08.05 |
[서블릿/JSP] 표현 언어(EL, Expression Language)란? (0) | 2019.08.05 |
[서블릿/JSP] 서블릿 url-pattern 실습 예제 (0) | 2019.08.02 |