기본 콘텐츠로 건너뛰기

2.01. EL(Expression Language) / JSTL(Java Standard Tag Library)

EL(Expression Language) / JSTL(Java Standard Tag Library)


0. EL 개요
1. 장, 단점 및 특징
2. JSTL



0. 개요

 - 표현: ${}
 - java code를 캡슐화하여 다른 표현식을 사용
 - 태그와의 혼동을 막고 간결한 소스 작성을 도움
 - JSP 보완하는 역할

1. 장, 단점 및 특징

1) 장점 및 단점
 - 장점: parsing 단계를 최소화, 빠른 컴파일 가능
 - 단점: 복잡한 데이터 처리 불가능

2) 특징
 - Object Scope를 사용할 수 있도록 자체적으로 implicit object 제공
  : page / request / session / application
  → Object Scope 검색 시에 page > request > session > application 순서로 검색함

 - BEAN field / collection에 접근이 쉬워짐

 - 자체 연산자와 내장객체를 제공함

 - isELIgnored = "false" → default: EL 사용 가능

 - 산술, 논리, 관계 연산자 사용 가능
 - 조건 연산자(삼항 연산자) 사용 가능
 - empty 연산자 사용 가능

<EL 사용 예시 및 OGNL>


2. JSTL

1) 각 회사마다 독특한 Tag lib 생성하기 시작
2) JSTL은 구현체가 필요
3) zero configuration: 특별한 설정이 필요없음
4) 자바 코드를 캡슐화 : 자바 내에서 사용하는 연산자, 반복문, 조건문 등 사용 가능

예)
1
2
3
4
5
<%@ taglib prefix="a" uri="http://java.sun.com/jsp/jstl/core" %>
 
<a:if test = "${param.value == '라이언'}">"라이언 갖고 싶어"<br/></a:if>
 
<a:if test = "${ !empty param.name}">${param.name}"님 어서오세요"<br/></a:if>
cs

=> getParameter.getValue를 통해 "라이언"이라는 값이 있다면 "라이언 갖고 싶어" 출력
=> getParameter.getName을 통해 값이 존재한다면 "(해당 이름)님 어서오세요" 출력

5) paramValues은 EL 내장객체: [파라미터 이름, 값의 배열]을 저장한 Map 객체
6) param은 EL 내장객체: [파라미터 이름, 값]을 저장한 Map 객체

<EL 내장객체>