Web/JSP

[JSP] EL 표현식

웹코린이 2023. 7. 3. 08:52
728x90

 

 

EL

JSP 페이지에서 Java 코드를 대체하고 뷰와 비즈니스 로직을 분리하는 데 사용됨

 

 

 

EL의 특징

  1. EL은 간결한  문법을 사용하여 Java 코드보다 더 가독성이 높고 쉽게 작성할 수 있음
  2. JSP 페이지의 변수에 쉽게 접근할 수 있음   ex) ${ user.name}
  3. 반복문을 사용하여 리스트나 배열의 요소를 사용할 수 있음
  4. JSTL 과 연동하여 사용 가능함
  5. JSP 속성(request, response, session, application 등) 에 저장된 객체의 property를 출력함

 

 

 

EL 연산자

연산자 설명
? 삼항 연산자
% mod
> It (less than)
< gt (greater than)
>= le (less or equal)
<= ge (greater or equal)
== eq (equal)
!= ne (not equal)

 

 

 

EL 표현식 사용 방법

 

 

Attribute

setAttribute("key", "value") 의 형태로 값을 설정 했을 때 JSP 페이지에서 ${ key } 를 작성하면 웹 페이지에서 value가 출력된다

<%
	pageContext.setAttribute("key","value");
	request.setAttribute("key","value");
	session.setAttribute("key","value");
	application.setAttribute("key","value");
%>

 

${key}
${requestScope.key}
${sessionScope.key}
${applicationScope.key}

 

 

 

Parameter 

Parameter 로 받은 값을 출력한다

<input type="text" name="name">
<input type="text" name="age">
<input type="text" name="hobby">

 

${param.name}
${param.age}
${param.hobby}

 

 

 

실습

 

EL 표현식을 활용하여 상품 선택 하여 결과 페이지에서 해당 값 받아와 출력하는 실습 

 

test01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 태그 라이브러리 등록 uri 경로, prefix 부를 이름-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="pb" class="test.ProductBean" scope="session"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>상품 선택 페이지</title>
</head>
<body>
 
	<form action="test02.jsp" method="post">
		<select name="product">
			<!-- JAVA의 for문 기능을 가지는 태그 -->
			<!-- JSTL에서 구현해놓았다! -->
			<c:forEach var="v" items="${ pb.pdatas }">
				<option>${ v }</option>
				<!-- EL식 ↔ 자바 표현식 -->
				<!-- 간단한 연산 가능 -->
			</c:forEach>
		</select>
		<input type="submit" value="상품 선택">
	</form>
</body>
</html>

 

 

 

 

test02.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>결과 페이지</title>
</head>
<body>
 
선택한 상품은 ${ param.product }입니다. <br>
num1 + num2 = ${ pb.num1 + pb.num2 }
 
</body>
</html>

 

 

 

728x90