[JSTL/EL] JSTL / EL

DevelopHeo·2024년 12월 22일
0
post-thumbnail

✏️ JSTL / EL

JSTL - JSP에서 자주 사용하는 스크립트릿을 하나의 태그로 묶은 라이브러리
EL - JSP에서 객체의 값을 쉽게 뽑아주는 기능

  • 핵심은 JSP 작성을 도와주는 친구들이다.

✏️ EL(Expression Language)

EL 사용 예시

  • 리스트나 배열 요소에 접근
String[] names = {"홍길동", "이순신", "임꺽정"};
request.setAttribute("userNames", names);
${userNames[0]} // 홍길동
${userNames["1"]} // 이순신  
// 이렇게 표현 가능하다

EL 개념

  • ${변수명}으로 선언하여, 다양한 연산자(산술, 비교, empty)를 사용 할 수 있는 도구

    ${ } : JSP가 실행될 때 즉시 반영된다. (Immediate evaluation)

    • 객체 프로퍼티 값을 꺼낼때 주로 사용
  • EL은 표현을 위한 언어로 JSP 스크립트릿의 표현식을 대신하여 속성 값을 쉽게 출력하도록 고안된 language이다.
  • 즉 표현식 (<%= %>) 를 대체할 수 있다.
  • EL 표현식에서 도트 연산자 왼쪽은 반드시 java.util.Map 객체 또는 Java Bean 객체여야 한다.
  • EL 표현식에서 도트 연산자 오른쪽은 반드시 Map의 Key이거나 Bean 프로퍼티여야 한다.
  • EL에서 제공하는 기능
    • JSP의 네가지 기본 객체가 제공하는 영역의 속성(attriute) 사용.
    • 자바 클래스 메소드 호출 기능.
    • 표현 언어만의 기본 객체 제공.
    • 수치, 관계, 논리 연산 제공.

EL 내장 객체

categoryidentifierTypedescription
JSPpageContextJava Bean현재 페이지(jsp)의 프로세싱과 상응하는 PageContext instance
범위(scope)pageScopeMappage scope에 저장된 객체를 추출
requestScopeMaprequest scope에 저장된 객체를 추출
sessionScopeMapsession scope에 저장된 객체를 추출
applicationScopeMapapplication scope에 저장된 객체를 추출

categoryidentifierTypedescription
요청 매개변수param내용3입니다ServletRequest.getParameter(String)을 통해 요청 정보를 추출
paramValuesMapServletRequest.getParameterValues(String)을 통해 요청 정보를 추출
요청 헤더headerMapHttpServletRequest.getHeader(String)을 통해 헤더 정보를 추출
headerValuesMapHttpServletRequest.getHeaders(String)을 통해 헤더 정보를 추출
쿠키cookieMapHttpServletRequest.getCookies()를 통해 쿠키 정보를 추출
초기화 매개변수initParamMapServletContext.getInitParameter(String)를 통해 초기화 파라미터를 추출

EL 연산자

연산자description
산술 연산자+ , - , * , / , % , mod
논리 연산자&& ,
비교 연산자== , != , < , > , <= , >= , eq , ne , lt (less than) , gt (greater than) , le , ge
empty 연산자값이 null이나 공백 문자인지를 판단하는 연산자

✏️ JSTL(Jsp Standard Tag Library)

JSTL 개념

JSTL = JSTL + EL의 조합을 의미한다.
HTML내의 스크립틀릿을 편하게 변환하여 준다.

<%= value>${value}
<%= if><c:if>
<%= for><c:forEach>

  • custom tag : 개발자가 직접 태그를 작성할 수 있는 기능을 제공.
  • custom tag 중에서 많이 사용되는 것들을 모아서 JSTL 이라는 규약을 만듦.
  • 논리적인 판단, 반복문의 처리, 데이터베이스 등의 처리를 할 수 있다.
  • JSTL은 JSP 페이지에서 스크립트릿을 사용하지 않고 액션을 통해 간단하게 처리할 수 있는 방버을 제공.
  • JSTL에는 다양한 액션이 있으며, EL과 함께 사용하여 코드를 간결하게 작성할 수 있다.

JSTL 사용 예시

  • 스클립트릿으로 분기 처리를 하게 되면?
<%
	if(count > 10){
%>
		<h1>횟수가 초과되었습니다.</h1>
<%
	}
%>
  • JSTL로 표현하면?
<c:if test="${count > 10}">
		<h1>횟수가 초과되었습니다.</h1>
</c:if>

JSTL 선언 형식

directive 선언 형식

<%@ taglib prefix="prefix" uri="uri" %>

JSTL Tag

libraryprefixfunctionURI
corec변수 지원, 흐름 제어, URL 처리http://java.sun.com/jsp/jstl/core
XMLxXML 코어, 흐름 제어 ,XML 변환http://java.sun.com/jsp/jstl/xml
국제화fmt지역, 메시지 형식, 숫자 및 날짜 형식http://java.sun.com/jsp/jstl/fmt
databasesqlSQLhttp://java.sun.com/jsp/jstl/sql
함수Maphttp://java.sun.com/jsp/jstl/functions

JSTL Core Tag

  • <c:set> , <c:out>, <c:if>, <c:choose> 이렇게 사용한다.

출처 : https://bancadev.tistory.com/7

0개의 댓글