Expression Language
EL이란?
표현식<%= %>
또는 액션 태그<jsp:></jsp:>
를 대신해서 값을 표현하는 언어이다.
EL은 ${value}
로 표현된다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${ 10 }<br/>
${ 99.99 }<br/>
${ "ABC" }<br/>
${ true }<br/>
</body>
</html>
EL 연산자
연산자 | 종류 |
---|---|
산술 | +, - , *, /, % |
관계형 | ==, !=, <, > , <=, >= |
조건 | a?b:c |
논리 | &&, || |
${ 1+2 }
${ 1-2 }
${ 1*2 }
${ (1>2)?1:2 }
액션태그로 사용되는 EL
<jsp:getProperty name=*"member" property="name"/>*
를 ${ member.name }
로 사용할 수 있다.
package com.javalec.ex;
public class MemberInfo {
private String name;
private String id;
private String pw;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
}
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<jsp:useBean id="member" class="com.javalec.ex.MemberInfo" scope="page" />
<jsp:setProperty name="member" property="name" value="이름"/>
<jsp:setProperty name="member" property="id" value="abc"/>
<jsp:setProperty name="member" property="pw" value="123"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
이름 : <jsp:getProperty name="member" property="name"/><br />
아이디 : <jsp:getProperty name="member" property="id"/><br />
비밀번호 : <jsp:getProperty name="member" property="pw"/><br />
<hr />
이름 : ${ member.name }<br />
아이다 : ${ member.id }<br />
비밀번호 : ${ member.pw }<br />
</body>
</html>
내장 객체
내장 객체 | 설명 |
---|---|
pageScope | page객체를 참조하는 객체 |
requestScope | request객체를 참조하는 객체 |
sessionScope | session객체를 참조하는 객체 |
applicationScope | application객체를 참조하는 객체 |
param | 요청 파라미터를 참조하는 객제 |
paramValues | 요청 파라미터(배열)를 참조하는 객제 |
initParam | 초기화 파라미터를 참조하는 객체 |
cookie | cookie객체를 참조하는 객체 |
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>jsp_23_3_ex1_elex</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>con_name</param-name>
<param-value>con_name은 홍길동 입니다.</param-value>
</context-param>
<context-param>
<param-name>con_id</param-name>
<param-value>con_id는 abcde 입니다.</param-value>
</context-param>
<context-param>
<param-name>con_pw</param-name>
<param-value>con_pw는 12345 입니다.</param-value>
</context-param>
</web-app>
여러 servlet에서 특정 데이터를 공유해야하는 경우 context parameter를 이용해서 공유하면서 사용할 수 있다.
obj.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="objelOk.jsp" method="get">
아이디 : <input type="text" name="id"><br />
비밀번호 : <input type="password" name="pw">
<input type="submit" value="login">
</form>
<%
application.setAttribute("application_name", "application_value");
session.setAttribute("session_name", "session_value");
pageContext.setAttribute("page_name", "page_value");
request.setAttribute("request_name", "request_value");
%>
</body>
</html>
objelOk.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
%>
아이디 : <%= id %> <br />
비밀번호 : <%= pw %>
<hr />
아이디 : ${ param.id } <br />
비밀번호 : ${ param.pw } <br />
아이디 : ${ param["id"] } <br />
비밀번호 : ${ param["pw"] }
<hr />
applicationScope : ${ applicationScope.application_name }<br />
sessionScope : ${ sessionScope.session_name }<br />
pageScope : ${ pageScope.page_name }<br />
requestScope : ${ requestScope.request_name }
<hr />
<!-- context parameter값을 참조해서 가져 올 수 있다.-->
context 초기화 파라미터<br />
${ initParam.con_name } <br />
${ initParam.con_id } <br />
${ initParam.con_pw } <br />
</body>
</html>
EL표기법을 통해서 코드가 긴 것(가독성이 떨어지는)을 더 간단하게 구현할 수 있다.
Last updated