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