EL은 표현을 위한 언어로 JSP 스크립트의 표현식을 대신하여 속성 값을 쉽게 출력하도록 고안된 language이다.
즉 표현식 (<%= %>)를 대체할 수 있다
EL 표현식에서 도트 연산자 왼쪽은 반드시 Java.util.Map 객체 또는 Java Bean 객체여야 한다
EL 표현식에서 도트 연산자 오른쪽은 반드시 맵의 키이거나 Bean 프로퍼티여야 한다
EL에서 제공하는 기능
-EL에는 Dot 표기법 외에 []연산자를 사용하여 객체의 값에 접근할 수 있다
pageContext를 제외한 모든 EL 내장 객체는 Map이다
그러므로 key와 value의 쌍으로 값을 저장하고 있다
기본 문법 ${expr}
Method is : ${pageContext.request.method}
//Servlet
request.setAttribute("city.user",memberDto);
case #1: 에러
${city.user.name}
case #2: request 내장객체에서 []연산자를 통해 속성 접근
${requestScope["city.user"].name}
<%
List<MemberDto>list = dao.getMembers();
request.setAttribute("users",list);
%>
회원 수 : ${requestScope.user.size()}, ${users.size()}
주의 >> ${users.size} == <%=request.getAttribute("users").getSize()%>
JSTL은 Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음
custom tag: 개발자가 직접 태그를 작성할 수 있는 기능을 제공
custom tag중에서 많이 사용되는 것들을 모아서 JSTL이라는 규약을 만듦
논리적인 판단, 반복문의 처리 데이터베이스 등의 처리를 할 수 있다
JSTL은 JSP 페이지에서 스크립트릿을 사용하지 않고 액션을 통해 간단하게 처리할 수 있는 방법을 제공
JSTL에는 다양한 액션이 있으며, EL과 함께 사용하여 코드를 간결하게 작성할 수 있다
선언 형식 <%@ taglib prefix = "c" url = "http://java.sun.com/jsp/jstl/core" %>
<C:Set> 액션은 변수나 특정 객체의 프로퍼티에 값을 할당할 때 사용
value 속성의 값이나 액션 Body content로 값을 설정
var 속성은 변수를 나타내며, 변수의 생존범위는 scope 속성으로 설정(디폴트는 page)
특정 객체의 프로퍼티에 값을 할당할 때는 target 속성에 객체를 설정하고 property에 프로퍼티명을 설정
기본적으로 JSP 페이지는 예외가 발생하면 지정된 오류페이지를 통해 처리한다
<c:catch> 액션은 JSP 페이지에서 예외가 발생할 만한 코드를 오류페이지로 넘기지 않고 직접 처리할 때 사용
var 속성에는 발생한 예외를 담을 page 생존범위 변수를 지정
<c:catch>와 <c:if> 액션을 함께 사용하여 Java 코드의 try-catch와 같은 기능을 구현할 수 있다
<c:if> 액션은 test 속성에 지정된 표현식을 평가하여 결과가 true인 경우 액션의 Body 컨텐츠를 수행
<c:if> 액션의 var 속성 표현식의 평가 결과인 Boolean 값을 담을 변수를 나타내며, 변수의 생존범위는 scope 속성으로 설정
<c:choose>,<c:when>, <c:otherwise> 액션을 사용하면 if, else if, else와 같이 처리할 수 있다
<c:forEach> 액션은 컬렉션에 있는 항목들에 대하여 액션의 Body 컨텐츠를 반복하여 수행
컬렉션에는 Array, Collection, Map또는 콤마로 분리된 문자열이 올 수 있다
var 속성에는 반복에 대한 현재 항목을 담는 변수를 지정하고 items 속성은 반복할 항목들을 갖는 컬렉션을 지정
varStatus 속성에 지정한 변수를 통해 현재 반복의 상태를 알 수 있다
![]() | ![]() |
---|