이해

EL과 JSTL

일일일코_장민기 2024. 2. 14. 16:05
728x90

EL(Expression language)

  • Expression language 로 JSP 2.0부터 추가된 개념
  • 자바 빈의 속성 값을 보다 쉽게 꺼내 쓸 수 있는 도구

종류

  • ${ } : JSP가 실행될 때 즉시 반영된다. (Immediate evaluation)
    • 객체 프로퍼티 값을 꺼낼때 주로 사용
    #{ }
    • 시스템에서 필요하다고 판단될 때 그 값을 사용한다. (Deferred evaluation) 사용자 입력값을 객체의 프로퍼티에 담는 용도로 주로 사용
  • ${변수명}으로 선언하여, 다양한 연산자(산술, 비교, empty)를 사용 할 수 있는 도구
    • ${fn:} 등을 통해 함수 사용 가능
    • HTML
      • <span>${prod.brndNm}</span> : 프론트단 노출 용도
    • javascript
      • "${prod.brndNm}"
      • JS에선 “” 안에 넣어서 사용한다.

 

 

 

 

 

JSTL

  • JSTL (Jsp Standard Tag Library)
  • JSTL = JSTL + EL의 조합을 의미한다.
  • HTML내의 스크립틀릿을 편하게 변환하여 준다.<%= value> → ${value}<%= for> → <c:forEach>
  • <%= if> → <c:if>
  • JSTL은 JSP페이지 내에서 java코드를 사용하지 않고 로직을 내장하는 방법을 제공한다.

사용의 이점?

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

사용법

  • core를 header에 추가한다.
    <% @taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
  • 필요한 JSP 태그를 사용한다.
    <c:if test=""></c:if>
    <c:forEach items=""></c:forEach>
    태그명설명
    <c:set> 변수명에 값을 할당
    <c:out> 값을 출력
    <c:if> 조건식에 해당하는 블럭과 사용될 scope설정
    <c:choose> 다른 언어의 switch와 비슷
    <c:when> switch문의 case에 해당
    <c:otherwise> switch문의 default에 해당
    <c:forEach> 다른언어의 loop문 items 속성에 배열을 할당할 수 있음

'이해' 카테고리의 다른 글

데이터 형식 주요 어노테이션  (0) 2024.02.23
data-속성 사용  (0) 2024.02.20
ViewerParsing 이해  (0) 2024.02.19
PRG패턴  (0) 2024.02.19
root-context와 servlet-context  (0) 2024.02.14