JSTL EL 표기법!
EL 및 표현 언어 |
표현언어는 다음과 같이 $와 표현식 그리고 괄호 ('{' 와 '}')를 사용하여 값을 표현한다.
${expr}
JSP 2.1 버전부터는 ${expr} 형식뿐만 아니ㅏ #{expr} 구문을 새롭게 지원하고 있다.
#{expr} 과 ${expr} 큰 차이점은 실제로 EL의 값을 언제 생성하느냐 이다.
EL이 제공하는 11개의 기본 객체
기본 객체 |
설명 |
pageContext |
JSP의 page 기본 객체와 동일하다. |
pageScope |
pageContext 기본 객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체 |
requestScope |
request 기본 객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체 |
sessionScope |
session 기본 객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체 |
applicationScope |
application 기본 객체에 저장된 속성의 <속성,값> 매핑을 저장한 Map 객체 |
param |
요청 파라미터의<파라미터이름, 값배열> 매핑을 저장한 Map 객체, 파라미터 값의 타입은 String으로서, requst.getParameter()의 결과와 동일 |
paramValues |
요청 파라미터의<파라미터이름, 값배열> 매핑을 저장한 Map 객체, 값의 타입은 String[]으로서, request.getParameterValues()의 결과와 동일 |
header |
요청 정보의 <헤더이름, 값> 매핑을 저장한 Map 객체, request.getHeader()의 결과와 동일하다 |
headerValues |
요청 정보의 <헤더이름, 값 배열> 매핑을 저장한 Map 객체. request.getHeaders()의 결과와 동일하다 |
cookie |
<쿠키 이름, Cookie> 매핑을 저장한 Map 객체, request.getCookie()로 구한 Cookie 배열로부터 매핑을 생성한다. |
initParam |
초기화 파라미터<이름,값> 매핑을 저장한 Map 객체 application.getInitParameter()의 결과와 동일하다. |
수치 연산자
● + : 덧셈
● - : 뺄셈
● * : 곱셈
● / 또는 div : 나눗셈
● % 또는 mod : 나머지
숫자가 아닌 객체와 수치 연산자를 사용할 경우 객체를 숫자 값으로 변환한 후 연산자를
수행한다
ex)
${"10" + 1 } |
만약 수치 연산자에서 사용되는 객체가 null 이면 0으로 처리된다
${ null + 1 } |
결과는 1 이다.
${"10" + 1 } |
empty 연산자
empty 연산자는 검사할 객체가 텅 빈 객체인지를 검사하기 위해 사용된다. empty 연산자는 다음과 같이 사용된다.
empty <값> |
여기서 <값>에 따라서 리턴되는 값은 다음과 같이 결정된다.
1. <값>이 null이면 true를 리턴한다.
2. <값>이 빈 문자열("")이면 true를 리턴한다.
3. <값>이 길이가 0인 배열이면 true를 리턴한다.
4. <값>이 빈 Map이면 true를 리턴한다.
5. <값>이 빈 Collection이면 true를 리턴한다.
6. 이 외의 경우에는 false를 리턴한다.
Collection에는 List, Map, Array 등이 모두 포함된다.