EL & JSTL

mingggkeee·2022년 3월 26일
0

EL(Expression Language)

  • EL은 표현을 위한 언어로 JSP 스크립트의 표현식을 대신하여 속성 값을 쉽게 출력하도록 고안된 언어
  • 즉 표현식 (<%= %>)를 대체 가능
  • EL 표현식에서 도트 연산자 왼쪽은 반드시 java.util.Map 객체이거나 Java Bean 객체여야 한다.
  • EL 표현식에서 도트 연산자 오른쪽은 반드시 맵의 키이거나 Bean 프로퍼티여야 한다.

기능

  • JSP의 네가지 기본 객체가 제공하는 영역의 속성 사용
  • 자바 클래스 메서드 호출 가능
  • 표현 언어만의 기본 객체 제공
  • 수치, 관계, 논리 연산 제공

문법

  • Map을 사용하는 경우 : ${Map.Key}
  • Java Bean을 사용하는 경우 : ${JavaBean.Bean프로퍼티}
  • [] 연산자를 이용한 객체 프로퍼티 접근 : ${객체["name"])
  • Dot 표기법을 이용한 객체 프로퍼티 접근 : ${객체.name}
  • 리스트나 배열 요소에 접근하기
// Servlet
String[] names = {"김","이","박};
request.setAttribute("name", names);

// JSP
${name[0]} // 김 출력
${name["1"]} // 문자열인 인덱스 값이 숫자로 바뀌어 names[1]의 결과 출력

내장 객체

  • pageContext(Type : JavaBean) : 현재 페이지의 프로세싱과 상응하는 PageContext instance
  • requestScope(Type : Map) : request scope에 저장된 객체 추출
  • sessionScope(Type : Map) : session scope에 저장된 객체 추출
  • param(Type : Map) : ServletRequest.getParameter(String)을 통해 요청 정보 추출
  • cookie(Type : Map) : HttpServletRequest.getCookies()를 통해 쿠키 정보 추출
  • pageContext를 제외한 모든 EL 내장 객체는 Map(key와 value의 쌍으로 값 저장)

JSTL(Jsp Standard Tag Library)

  • JSTL은 Java EE 기반의 웹 어플리케이션 개발 플랫폼을 위한 컴포넌트 모음이다.
  • custom tag : 개발자가 직접 태그를 작성할 수 있는 기능 제공
  • custom tag중에서 많이 사용되는 것들을 모아서 JSTL이라는 규약 생성
  • 논리적인 판단, 반복문의 처리, DB 등의 처리 가능

Tag

  • Directive선언 형식 : <%@ taglib prefix="c" uri="uri" %>

변수 선언<c:set>

  • <c:set>액션은 변수나 특정 객체의 프로퍼티에 값을 할당할 때 사용
  • value속성의 값이나 액션의 Body content로 값 설정
  • var 속성은 변수, 변수의 생존 범위는 scope속성으로 설정(default는 page)
  • 특정 객체의 프로퍼티에 값을 할당할 때는 target 속성에 객체를 설정

흐름 제어

  • if : 조건에 따른 코드 실행
  • choose, when, otherwise : 다중 조건을 처리할 때 사용
  • forEach : array나 collection의 각 항목을 처리할 때 사용
profile
만반잘부

0개의 댓글