티스토리 뷰
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
최근에 올라온 글
최근에 달린 댓글
TAG
- javascript
- 인천 구월동 맛집
- 이탈리안 레스토랑
- react-native
- 정보보안기사 #실기 #정리
- 파니노구스토
- 맛집
- react
- Async
- redux
- AsyncStorage
- 인천 구월동 이탈리안 맛집
- await
- redux-thunk
- Promise
- Total
- Today
- Yesterday