Sky Archive

Java/JSP

[JSP] EL이란? 기본객체와 eq, ne, empty의 사용법

Anchovy ʕ-᷅ᴥ-᷄ʔ 2021. 7. 3. 18:12

EL(Expression language) 이란?

EL은 Expression language의 약자이며 데이터를 표현하기 위한 언어JSP의 기본 문법을 보완해주고 자바 코드를 대신해 실행 시간에 태그의 속성 값을 지정하는 역할을 하고 JSP 2.0에 추가된 개념이랍니다.😊

초기의 EL은 JSTL의 액션 태그에서만 작동하는 문제가 있었는데, JSP 2.0부터는 JSP 컨테이너가 EL 표현식을 해석할 수 있게 도와주고 <%= %>와 같은 방식의 표현식 대신 사용하거나 내장객체 또는 표준 액션 태그, 커스텀 태그, 템플릿 데이터와 같이 자바 코드를 사용해야 했던 모든 곳에 EL을 사용할 수 있어요.

 

 

EL의 주요 기능

  1. JSP의 네 가지 기본 객체가 제공하는 영역의 속성을 사용할 수 있어요.
  2. 집합 객체에 대한 접근 방법을 제공해요.
  3. 수치 연산, 관계 연산, 논리연산자를 제공해요.
  4. 자바 클래스 메소드를 불러올 수 있어요.
  5. EL만의 기본 객체를 제공해요

 

EL 문법

${} : JSP가 실행될 때 즉시 반영되고 객체 프로퍼티 값을 꺼낼 때 사용해요

#{} : 사용자 입력값을 객체의 프로퍼티에 담는 용도로 사용해요

값을 찾을 때 Attribute는 작은 범위에서 큰 범위로 찾게 돼요. (application > session > request > page)

 

EL 기본 객체

EL은 key & Value의 형식으로 이루어져 있어요.

 

- 데이터 저장 영역 관련 객체

pageContext  JSP의 page 기본 객체로 servletContext, session, request, response 등 여러 객체를 참조
pageScope  pageContext 기본 객체
requestScope  request 기본 객체
sessionScope  session 기본 객체
applicationScope  application 기본 객체

 

- 매개 변수 관련 객체

initParam  web.xml에 등록된 초기 매개 변수를 가져올 때 사용 application.getInitParameter(name)
param 파라미터 값을 가져올 때 사용 request.getParameter(name)
paramValues 파라미터 값을 배열로 가져올 때 사용 request.getParameterValues(name)

 

- 헤더 관련 객체

header  헤더 값을 가져올 때 사용 request.getHeader(name)
headerValues  헤더 값을 배열로 가져올 때 사용 request.getHeaders(name)

 

- 쿠키 관련 객체

cookie  쿠키 정보를 배열로 가져올 때 사용 request.getCookies()
<%-- <%= %> 표현식 --%>
<%=request.getParameter("id") %>
<%=request.getParameter("password") %>

<%-- EL 표현식 --%>
${param.id }
${param.password }


※ 추가로 값 비교 시 사용되는 eq, ne, empty의 예시를 하나 볼게요.

보통 값에 대한 비교로 "==", "!="를 많이 사용하시죠? JSTL에서는 그 대신 eq과 ne를, List나 Map 객체가 비었느냐 아니냐를 구분하는 용도로 empty를 사용할 수 있어요.

<%-- eq (==) --%>
<c:if test="${ null eq enchovy_column }">
<c:if test="${ 0 eq enchovy_column }">
<c:if test="${ '0' eq enchovy_column }">

 

<%-- ne (!=) --%>
<c:if test="${ null ne enchovy_column }">
<c:if test="${ 0 ne enchovy_column }">
<c:if test="${ '0' ne enchovy_column }">

 

<%-- empty --%>
<c:if test="${ empty enchovy_list }">
<c:if test="${!empty enchovy_list }">

'Java > JSP' 카테고리의 다른 글

[JSTL] 페이징 변수를 이용한 간단한 글 번호 처리  (0) 2021.10.27
[JSTL] JSTL 내장 함수 정리  (0) 2021.07.02