객체(Object)

EL (Expression Language)


EL이란?

JSP를 사용하다보면 먼가 불편하고 이상한 점을 느꼇을 것이다.

분명 html을 작성하려고 JSP 코드를 작성하는데 <% %>의 Java코드가
생각보다 많이 작성되어 있고 가독성이 떨어지는 모습을 볼 수 있을 것이다.

이러한 부분을 보완하기 위해서 JSP 2.0부터는 EL이라는 tag를 지원하여 Java코드를 더 간결하게 작성할 수 있게된다.

EL 특징

접근용이

  • Object Scope
  • Bean Field
  • Collection

제공

  • 자체연산자
  • 내장객체

EL의 사용


EL tag의 사용법은 ${ }을 사용한다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
    String name = (String)request.getAttribute("name");
%>
<html>
<head>
</head>
<body>

    나의 이름은 <%= name %>이다.

</body>
</html>

위와 같이 servlet에서 request Scope를 통해 어떠힌 데이터를 보내려면
<% %> 안에 getAttribute코드를 작성하고 캐스팅 또한 해줘야하는
번거로움이 있다.

하지만 EL tag인 ${ }을 사용한다면 이러한 코드를 더욱더 간결하게
작성 할 수 있게된다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<html>
<head>
</head>
<body>

    나의 이름은 ${name}이다.

</body>
</html>

위와 같이 따로 캐스팅과 get코드를 작성하지 않더라도 key값으로
request의 저장된 데이터를 쉽게 불러 올 수 있다.

EL tag


EL은 데이터를 불러오는 것 뿐만 아니라 연산식을 사용 할 수 있다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<html>
<head>
</head>
<body>

    1 + 2 = ${ 1 + '2' } <br/> <!-- 1 + 2 = 3 -->
    2 * 3 = ${ 2 * 3 } <br/> <!-- 2 * 3 = 6 -->    

</body>
</html>   

EL은 뿐만아니라 데이터를 자동으로 인식하여 숫자로 구성된
문자열은 int로 바뀌어 계산을 한다.

OGNL (Object Graph Navigation Language)


EL은 OGNL 오픈 소스이며 간단한 표현식을 사용하용하여 코드를
간결하게 작성 할 수 있다.

Servlet을 배웟다면 Object Scope를 배웠을 것이다.

  • request
  • session
  • application

EL 또한 Object Scope 개념이 존재한다.

  • pageScope
  • requestScope
  • sessionScope
  • applicationScope

위에 ${ name }을 불렀는데 이것은 Scope가 생략되 있는 코드로써
session인지 request인지 알 방법이 없다.

여기서 찾아가는 순서를 가지게 되는데 page => request => session => applucation
순서대로 찾아가게된다.

//java
public class UserVO{
    private String name = '홍길동';

    public String getName(){
        return this.name;
    }
}
// -----
request.setAttribute("user", new UserVO);
<!-- jsp -->
~
<body>
 ${ user.getName }
 <!-- get을 통하여 접근한다 -->
 ${ user.name }
 <!-- get을 생략하여 properties에 접근 -->
</body>
~

위와 같이 get/set , scope의 생략을 통해 코드를 간략하게 작성할 수 있다.
이것을 OGNL이라고 한다.

EL 활용


EL tag는 이렇게 JSP 코드를 쉽게 쓰는 방법을 가지고 있어
JSTL과 후에 배울 Spring framework에서도 사용하게 된다.

Categories:

Updated:

Leave a comment