상세 컨텐츠

본문 제목

EL(Expression Language) 예제

WebProgramming/JSP

by ChrisMare 2018. 10. 25. 21:56

본문

EL(Expression Language) ?

표현식 또는 액션태그를 대신해서 값을 간략하게 표현하는 언어이다.


EL 연산자

  • 산술 : +, -, *, /, %
  • 관계형 : ==, !=, <, >, <=, >=
  • 조건 : a? b:c
  • 논리 : &&, ||


ex) 표현식 vs EL 표기법

elEX1.jsp )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<H1>표현식</H1>
<hr>
<%= 1 + 1 %> <br>
<%= 1 != 2 %> <br>
<%= (1<2) ? true : false %> <br>
<%= (2>1)&&(1>2%> <br>
<hr>
 
<h1>EL</h1>
<hr>
${ 1 + 1 } <br>
${ 1 != 2 } <br>
${ (1<2) ? true : false } <br>
${ (2>1)&&(1>2) } <br>
<hr>
</body>
</html>
cs


결과)

ex) 액션태그 vs EL 표기법


com.jsplec.ex.Member.java )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.jsplec.ex;
 
public class Member {
 
    private String id;
    private String pw;
    private String name;
    private String email;
    
    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;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    
}
 
cs

elEX2.jsp )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="member" class="com.jsplec.ex.Member"/>
<jsp:setProperty property="id" name="member" value="admin"/>
<jsp:setProperty property="pw" name="member" value="1234"/>
<jsp:setProperty property="name" name="member" value="관리자"/>
<jsp:setProperty property="email" name="member" value="admin@gmail.com"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<H1>액션 태그</H1>
<hr>
아이디 : <jsp:getProperty property="id" name="member"/> <br>
비밀번호 : <jsp:getProperty property="pw" name="member"/> <br>
이름 : <jsp:getProperty property="name" name="member"/> <br>
이메일 : <jsp:getProperty property="email" name="member"/> <br>
<hr>
 
<h1>EL</h1>
<hr>
아이디 : ${ member.id } <br>
비밀번호 : ${ member.pw } <br>
이름 : ${ member.name } <br>
이메일 : ${ member.email } <br>
<hr>
</body>
</html>
cs


결과 )

EL 내장 객체

  • param : 요청 파라미터를 참조하는 객체.

  • paramValues : 요청 파라미터(배열)를 참조하는 객체.

  • initParam : 초기화 파라미터를 참조하는 객체.

  • cookie : cookie 객체를 참조한는 객체.


예제) 

login.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Login Page</title>
</head>
<body>
<h1>LOGIN</h1>
<hr>
<form action="loginOK.jsp" method="post">
    <input type="text" name="id" placeholder="아이디를 입력해주세요."><br/>
    <input type="text" name="pw" placeholder="비밀번호를 입력해주세요."><br/>
    <input type="submit" value="로그인">
</form>
<%
    // 아래로 내려갈 수 록 범위가 좁다
    application.setAttribute("application_name""application_value");
    session.setAttribute("session_name""session_value");
    request.setAttribute("request_name""request_value");
    pageContext.setAttribute("page_name""page_value");
%>
</body>
</html>
cs


loginOK.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Login Result Page</title>
</head>
<body>
    <h1>Login Result 표현식</h1>
    <br>
    <% 
        String id = request.getParameter("id");
        String pw = request.getParameter("pw");
    %>
    아이디 : <%= id %> <br/>
    비밀번호 : <%= pw %> <br/>
    <hr>
    
    <h1>Login Result EL</h1>
    <hr>
    <span>EL version1</span><br>
    아이디 : ${ param.id } <br/>
    비밀번호 : ${ param.pw } <br/><br>
    <span>EL version1</span><br>
    아이디 : ${ param["id"] } <br/>
    비밀번호 : ${ param["pw"] } <br/>
    <hr>
    
    <h1>EL Scope</h1>
    <hr>
    applicationScope : ${ applicationScope_application.name } <br/>
    sessionScope : ${ sessionScope.session_name } <br/>
    requestScope : ${ requestScope.request_name } <br/>
    pageScope : ${ pageScope.session_name } <br/>
    <hr>
    
    <h1>context-param 초기화 파라미터</h1>
    <span>web.xml 파일에 미리 initParam 값을 정해줘야 된다.</span>
    <hr>
    ${ initParam.context_id } <br/>
    ${ initParam.context_pw } <br/>
    ${ initParam.context_name } <br/>
    <hr>
    
</body>
</html>   
cs


web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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>elTest</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>context_id</param-name>
      <param-value>admin</param-value>
  </context-param>
  <context-param>
      <param-name>context_pw</param-name>
      <param-value>1234</param-value>
  </context-param>
  <context-param>
      <param-name>context_name</param-name>
      <param-value>관리자</param-value>
  </context-param>
  
</web-app>
cs


결과)



EL 표기법을 사용할 필요는 없지만 사용할 시 코드를 간략하게 하여 줄일 수 있으며 가독성을 높일 수 있습니다.




관련글 더보기

댓글 영역