-
JSP - EL'{$}'JSP 2024. 8. 29. 17:29반응형
EL'{$}' 이란?
**Expression Language (EL)**는 JSP(JavaServer Pages)에서 간단한 문법을 통해 데이터를 표현하고 조작할 수 있도록 지원하는 언어입니다. EL은 JSP 2.0에서 처음 도입되었으며, 서버 측 데이터를 HTML로 표현하는 것을 쉽게 하고, 기존의 스크립틀릿(스크립트 코드) 사용을 줄여서 JSP 코드를 더 간결하고 유지 보수하기 쉽게 만듭니다.
1. EL의 기본 개념
EL은 ${} 구문을 사용하여 표현식을 작성합니다. EL을 통해 JSP 페이지에서 Java 객체의 속성에 접근하거나, 다양한 연산을 수행할 수 있습니다. JSP의 스크립틀릿(<% %>) 코드 대신 EL을 사용하면 더 직관적인 문법으로 서버 측 데이터를 표현할 수 있습니다.
2. EL의 주요 기능
2.1 속성 값 참조
- EL에서는 JSP 페이지에 포함된 Java 객체의 속성 값을 간단히 참조할 수 있습니다. 이를 위해 ${} 구문을 사용합니다.
- 예시:
<%-- JSP 코드 --%> <c:set var="user" value="${requestScope.user}" /> <p>User Name: ${user.name}</p> <p>User Age: ${user.age}</p>
- 설명: 이 예제에서 EL을 사용하여 user 객체의 name과 age 속성에 접근합니다.
2.2 연산
- EL에서는 기본적인 연산도 지원합니다. 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 산술 연산뿐만 아니라 논리 연산과 비교 연산도 가능합니다.
- 예시:
<%-- 산술 연산 --%> <p>Total: ${cart.total + cart.tax}</p> <%-- 비교 연산 --%> <c:if test="${user.age >= 18}"> <p>Welcome, adult user!</p> </c:if> <%-- 논리 연산 --%> <c:if test="${user.loggedIn && user.age >= 18}"> <p>Welcome to the restricted area!</p> </c:if>
- 설명: 이 예제에서 EL을 사용해 산술, 비교, 논리 연산을 수행하여 조건부 출력과 같은 작업을 쉽게 처리할 수 있습니다.
2.3 빈 속성 접근
- EL을 사용하면 자바빈(JavaBean) 객체의 속성에 간단히 접근할 수 있습니다. 이때 프로퍼티 접근자는 EL이 자동으로 처리해줍니다.
- 예시:
<%-- JavaBean 예시 --%> <jsp:useBean id="user" class="com.example.User" scope="request" /> <p>Username: ${user.username}</p> <p>Email: ${user.email}</p>
- 설명: user라는 JavaBean 객체를 생성하고, EL을 통해 해당 객체의 username과 email 속성에 접근합니다.
2.4 컬렉션 접근
- EL은 배열, 리스트, 맵과 같은 컬렉션에 대한 접근도 지원합니다.
- 예시:
<%-- 리스트 접근 --%> <c:set var="items" value="${['item1', 'item2', 'item3']}" /> <ul> <c:forEach var="item" items="${items}"> <li>${item}</li> </c:forEach> </ul> <%-- 맵 접근 --%> <c:set var="user" value="${{'name':'John', 'age':30}}" /> <p>Name: ${user.name}</p> <p>Age: ${user.age}</p>
- 설명: 이 예제에서 EL은 리스트와 맵에 접근하여 각각의 값을 출력합니다.
2.5 내장 객체
- EL은 JSP에서 자주 사용되는 내장 객체들에 간단히 접근할 수 있습니다. 예를 들어, pageScope, requestScope, sessionScope, applicationScope와 같은 객체들이 있습니다.
- 예시:
<p>Session User: ${sessionScope.user.name}</p> <p>Application Version: ${applicationScope.version}</p>
- 설명: 이 예제에서 EL은 세션과 애플리케이션 스코프에 있는 객체에 접근합니다.
2.6 조건부 연산
- EL은 조건부 연산(?:)을 지원하여 간단한 조건부 로직을 구현할 수 있습니다.
- 예시:
<p>User Type: ${user.age >= 18 ? 'Adult' : 'Minor'}</p>
- 설명: 이 예제에서는 사용자의 나이에 따라 'Adult' 또는 'Minor'를 출력하는 조건부 연산을 수행합니다.
3. EL의 장점
- 간결성: EL을 사용하면 JSP 페이지에서 Java 코드를 직접 작성하지 않고도 데이터에 접근할 수 있어 코드가 간결해집니다.
- 가독성: 표현식 언어는 직관적이며, 스크립틀릿 코드보다 읽기 쉽습니다.
- 유지보수성: EL을 사용하면 JSP 페이지의 유지보수성이 높아집니다. JSP 페이지 내의 비즈니스 로직이 줄어들어 MVC 패턴에 더 잘 맞는 구조가 됩니다.
4. EL 예외 처리
- EL은 null 값을 처리할 때도 유연합니다. 예를 들어, null 값에 접근하려 할 경우, 기본적으로 아무것도 출력되지 않거나 0, false 등으로 처리됩니다.
- 예시:
<p>Non-existent Property: ${user.nonExistentProperty}</p>
- 설명: 이 예제에서 user 객체에 nonExistentProperty가 없을 경우에도 오류가 발생하지 않고 단순히 빈 값이 출력됩니다.
5. EL 함수
- EL은 사용자 정의 함수를 지원하며, 이러한 함수는 태그 라이브러리 정의 파일(TLD)에 정의되어 있습니다.
- 예시:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <p>Capitalized Name: ${fn:toUpperCase(user.name)}</p>
- 설명: 이 예제에서 JSTL 함수 라이브러리를 사용해 user.name 값을 대문자로 변환합니다.
결론
EL은 JSP에서 데이터에 접근하고 조작하는 것을 간단하게 만들어주는 표현식 언어입니다. EL을 사용하면 자바 객체의 속성 값에 접근하거나, 컬렉션을 다루거나, 조건부 로직을 구현하는 작업이 매우 직관적이고 간편해집니다. EL은 코드의 가독성을 높이고 유지보수성을 향상시키기 때문에, JSP 페이지에서 널리 사용됩니다.
반응형'JSP' 카테고리의 다른 글
Forwarding이란? (0) 2025.01.30 JSP - 코어태그 <c:out>와 <c:set> (0) 2024.08.30 JSP - 헬퍼함수(Prototype.js) $F()와 $H() (0) 2024.08.29 JSP - 헬퍼함수의 개념과 소개 (0) 2024.08.29 JSP - 스크립틀릿과 비즈니스 로직: 이해와 활용 (0) 2024.08.29