KH/JDBC

EL(Expression Language) 연산자

오늘의 진 2022. 10. 17. 12:39

EL 

 

EL은 표현언어를 의미한다. 

EL은 JSP의 스크립트 태그 <%= %>을 대신하여 JSP값들을 좀 더 편리하게 출력하기 위해 제공되는 언어이다. 

예를들어 <%= hello %> 는 ${hello} 로 표현된다. 

 

 세가지 모두 같다. 

${test} == ${['test']} == &{["test"]} 

${hello.test} == ${hello['test']} == &{hello["test"]}

 

JSTL과 EL을 사용하므로써 <% %> 와 같은 스크립팅을 없앨수 있다. 

JSP 페이지 상에서 자바소스를 없앨수 있다는 말. 

 

 

EL의 내장 객체

내장 객체 의미 
pageScope page 영역에 존재하는 객체를 참조할 때 사용
requestScope Request 영역에 존재하는 객체를 참조할 때 사용
sessionScope Session 영역에 존재하는 객체를 참조할 때 사용
applicationSope Application 영역에 존재하는 객체를 참조할 때 사용
param 파라미터 값을 얻어 올때 사용 
paramValues 파라미터 값을 배열로 얻어 올 때 사용
header Header 정보를 얻어 올 때 사용
headerValue Header 정보를 배열로 얻어 올 때 사용 
cookie 쿠키 객체를 참조 할 때 사용
initParam 컨텍스트의 초기화 객체 사용
pageContext pageContext 객체를 참조 할 때 사용 

 

 

 

 

(예)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연산자 사용</title>
</head>
<body>

	<!-- \를 앞에 붙이면 ${} 내부의 내용 그 자체를 문자로 인정하겠다는 것  -->
	<h3>\${ 5+7 } =${5+7}</h3>
	<h3>\${ 8-3} =${ 8-3}</h3>
	<h3>\${ 6*4} =${6*4 }</h3>
	<h3>\${ 9/3} =${9/3 }</h3>
	<h3>\${ 10%3} =${10%3 }</h3>
	<h3>\${55==88} =${55==88}</h3>
	<h3>\${5!=77} =${5!=77 }</h3>
	<h3>\${ 66>77} = ${66>77}</h3>
	<h3>\${ 45>=45} = ${45>=45}</h3>
	<h3>\${45 <=67 } = ${45<=67}</h3>
	<h3>\${(5+3) != 8 ? 8 : 99 } = ${(5+3) != 8 ? 8 : 99}</h3>

</body>
</html>

 

 

 

(예)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
session.setAttribute("king", "Session Test 2022");
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 내장 객체 사용</title>
<style type="text/css">
table {
	width: 500px;
	margin: auto;
	border: 2px solid #00ff00;
	text-align: center;
	background-color: #bbaa66;
}
</style>

</head>
<body>

	<form action="eltest_3.jsp" method="get">

		<table>

			<tr>
				<td>이름</td>
				<td><input type="text" name="name" value="달맞이꽃"></td>
			</tr>

			<tr>
				<td>전화번호</td>
				<td><input type="text" name="tel" value="010-123-1234"></td>
			</tr>

			<tr>
				<td colspan="2" align="center"><input type="submit" value="입력"> &nbsp;&nbsp; <input type="reset" value="취소"></td>
			</tr>
		</table>
	</form>
</body>
</html>
 

 

 

 

 

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 내장 객체 Test</title>
</head>
<body>

	<%
	request.setAttribute("korea", "아름다운 꽃");
	application.setAttribute("queen", "푸르른 하늘");
	%>

	<hr size="5" color="red">
	<table border="1">
		<tr>
			<td>EL Implication Object</td>
			<td>Revult</td>
		</tr>
		<tr>
			<td>\${empty param.age}</td>
			<td>${ empty param.age}</td> <!-- 없음으로 비어있으므로 true 반환  -->
		</tr>

		<tr>
			<td>\${!empty param.age }</td>
			<td>${ !empty param.age}</td> <!-- age는 null 이므로 비어있지 않냐고 물으면 false 반환 -->
		</tr>

		<!-- 
저장 객체 접근
${ param.name} => request.getPrameter("name");
${ memver} => request.getAttribute("member");

저장 객체의 attribute에 자동으로 접근하는데 
자동 검색 순위는 page, request, session, application  순이다. 

${member.name } => Member m = (Member)request.getAttribute("member");
                         m.getName();

 -->

		<tr>
			<td>\${ pageContext.request.contextPath}</td> <!-- 프로젝트 명 출력 -->
			<td>${ pageContext.request.contextPath}</td>
		</tr>

		<tr>
			<td>\${ requstScope.korea}</td>
			<td>${requestScope.korea}</td>
		</tr>

		<tr>
			<td>\${requestScope['korea'] }</td>
			<td>${requestScope['korea'] }</td>
		</tr>

		<tr>
			<td>\${requestScope["korea"] }</td>
			<td>${requestScope["korea"] }</td>
		</tr>

		<tr>
			<td>\${applicationScope.queen }</td>
			<td>${applicationScope.queen }</td>
		</tr>
	</table>
	<hr size="5" color="green">
</body>
</html>

 

 

'KH > JDBC' 카테고리의 다른 글

JQuery_selector  (0) 2022.10.20
jQuery _01  (0) 2022.10.19
ResultSet과 commit, rollback의 문제  (0) 2022.10.19
JSTL_XML, SQL, 파일 업로드 기능 구현하기  (0) 2022.10.18
JDBC를 이용하여 게시판 만들기  (0) 2022.10.17