JSP 2.0 EXPRESSION LANGUAGE

http://blog.sdnkorea.com/blog/272

- "." 와 [] 연산자 비교
${header["host"]} localhost:8080
${header.host} localhost:8080

${header["user-agent"]} Mozilla/5.0 (Macintosh;...)
${header.user-agent} 0 //마이너스 연산을 한다.

- []에 EL변수 사용가능
<c:set var="headerName" value="host"/>
${header[headerName]}

- 디폴트 값 정의하기
<c:out value="${colors[1024]}" default="transparent"/>

${colors[1024] == null ? "transparent" : colors[1024]}

- forEach구문에서 Map 사용하기
JSTL태그 forEach를 이용할 때, 반복 변수(iteration)는 java.util.Map.Entry 타입이다.
Map에 들어있는 데이터에 접근하려면 Entry#key 와 Entry#value를 사용하면 된다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
    java.util.Map map = new java.util.HashMap();
    map.put("a", "1");
    map.put("b", "2");
    map.put("c", "3");
    map.put("4", "d");
    pageContext.setAttribute("map", map);
%>
<c:forEach var="data" items="${map}">
${data.key}=${data.value}<br>
</c:forEach>
<hr>
${map["4"]}<br>
${map.4}<br> //EXCEPTION
<hr>
<c:forEach var="hdr" items="${header}">
${hdr.key}=${hdr.value}<br>
</c:forEach>
<hr>
<c:forEach var="cookieVal" items="${cookie}">
${cookieVal}<br>
</c:forEach>