티스토리 뷰

EL(Expression Language)은 자바 빈의 프로퍼티, 값을 JSP의 표현식 <%= %>이나 액션 태그 <jsp:useBean>를 사용하는것 보다 쉽고 간결하게 꺼낼수 있게 하는 기술이다.

 


EL 표기법

 

-> ${ }

- JSP가 실행될 때 즉시 반영된다.
- 객체 프로퍼티 값을 꺼낼때 주로 사용

 

-> #{ }

- 시스템에서 필요하다고 판단될 때 그 값을 사용한다.
- 사용자 입력값을 객체의 프로퍼티에 담는 용도로 주로 사용

 


그냥 진짜 간단하게 좀 더 간결하게 <% %>을 대체할 수 있도록 만들어진 표현법이다. 

예제 코드를 보면,

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
<title>el_1</title>
</head>
<body>
		<%! String str = "안녕"; %>
		
		<%= str %>
		<br />
		${str} <!--  el 표현 방식 -->
		<br />
		${(5>2)? 5:2 }
		<br />
		정수형: ${10} 
		<br />
		실수형: ${10.55 }
		<br />
		문자열형:${"1010" }
		<br />
		논리형: ${ true }
		<br />
		
</body>
</html>

 

이렇게 <% %>를 사용하지 않고도 쉽게 변수들을 꺼낼 수 있다.

어떤 표현식을 사용하는 지는 개발하는 사람의 마음이지만, 개인적으로  EL 표현식이 훨씬 가독성이 좋아보이긴 한다.

 

EL 표현식을 사용해서 Request한 파라미터도 쉽게 꺼낼 수 있다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
	<meta charset="UTF-8">
	<title>login</title>
</head>
<body>
	<form action = "testLogin.jsp">
			아이디: <input type = "text" name = "id" />
			비밀번호: <input type = "password" name = "pwd"/>
			 <br />
			 <input type = "submit" value ="로그인"/>
		 </form>
</body>
</html>

이렇게 간단하게 로그인 폼을 구성해서 받는 코드를 작성해보면

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
	<meta charset="UTF-8">
	<title>testLogin</title>
</head>
<body>
	 아이디: <%= request.getParameter("id") %>
	<br/>
	비밀번호: ${param.pwd }
    <br/>
    비밀번호: ${param["pwd"]}
</body>
</html>

 

두 표현식 다 정상적으로 parameter를 받아올 수 있다.


또한 request나 session등에서 설정한 Attibute들도 EL 표현식으로 꺼내 쓸 수 있는데 이때는 Scope를 사용하여 아래와 같이 작성해야 한다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE>
<%
	pageContext.setAttribute("name", "page");
	request.setAttribute("name", "request");
	session.setAttribute("name", "session");
	application.setAttribute("name", "application");
	
%>

<html>
<head>
<meta charset="UTF-8">
<title>el_3</title>
</head>
<body>
	
		${pageScope.name }
		${requestScope.name }
		${sessionScope.name }
		${applicaionScope.name }	
</body>
</html>

'WEB > DynamicWeb' 카테고리의 다른 글

[JSP] JSTL - fmt  (0) 2021.04.26
[JSP] JSTL - core  (0) 2021.04.23
[JSP] Beans - property 쉽게 사용하기  (0) 2021.04.23
[JSP] JAVA Beans  (0) 2021.04.23
[JSP] 세션 활용 예제 <로그인>  (0) 2021.04.23
Comments