JSTL

사용법

  • JSP 상단에 추가
    1. core <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    2. fmt <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    3. sql <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
    4. xml <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
    5. functions <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
  1. <c:set>

    • 변수 선언 태그
    • <c:set var="변수이름" value='값'>
    • 다른 영역에 저장하고 싶다면
    • <c:set var="변수이름" value="값" scope="session"/>
      • 이 변수는 내부적으로 자바변수로 선언되는것이 아니라 page 데이터 영역의 어트리뷰트로 선언됨
      • <%= 변수이름 %> 로 출력될 수 없음
  2. <c:remove>

    • 변수를 제거할 때 사용
    • <c:remove var="변수이름"/>
    • 이렇게 사용하면 해당이름의 변수가 사라지며 이렇게 선언할 경우 모든 scope에서 해당이름을 가진 변수는 다 제거함
    • <c:remove var="변수이름" scope="request"/>
      • 특정 영역의 변수만 제거됨
  3. <c:out>

    • 이 태그는 변수 내용을 출력할 때 사용되는 태그
    • EL로도 출력할 수 있지만, 아래와 같이 태그가 포함된 변수를 escapeXml 항목을 true/false 지정해서
      태그를 포함해서 출력할지 적용해서 출력할지 결정할 수 있음
      <c:set var="aaa" value="<font color=red>ㅋㅋㅋ</font><br/>"></c:set>
      

    <c:out value="${aaa}" escapeXml="false">
    <c:out value="${aaa}" escapeXml="true">

    result:
    ㅋㅋㅋ
    ㅋㅋㅋ

    ```

  4. <c:if test="true|false">

    <c:if test="${test != null}" var="flag">
     루루루라라라라랄
    </c:if>
    ${flag}
    
    false 가 나옴
    • test 안의 내용이 true이냐 false 이냐에 따라서 내용을 출력하거나 출력하지 않음
    • 따라서 EL형태를 응용해서 <c:if test="${10 > 0}"> 이렇게 표현한다면 EL은 true|false를 리턴함
    • 그 값에 따라 JSTL도 동작하게 되는 형태
  5. <c:choose>

    • 일종의 스위치문
      <c:choose>
       <c:when test="${flag == true }">
           트루
       </c:when>
       <c:when test="${flag == false }">
           펄스
       </c:when>
       <c:otherwise>
            아더와이즈
       </c:otherwise>
      </c:choose>
    1. <c:forEach>
    • for문과 비슷한 forEach
    • 1~10 까지 출력
      <c:forEach var="임시변수명" begin="1" end="10">
      ${임시변수명}< br/>
      </c:forEach>
    • 1, 3, 5 ,7, 9로 출력
      <c:forEach var="임시변수명" begin="1" end="10" step="2">
      ${임시변수명}<br/>
      </c:forEach>
    • 배열의 내용을 순서대로 출력
      <c:forEach var="리스트에 담긴 값" items="${리스트}">
      ${리스트에 담긴 값}<br/>
      </c:forEach>
    1. <c:forTokens>
    • 문자열에 포함된 토큰을 분리해서 각각의 토큰에 대해 반복 처리를 수행하도록 만드는 기능
    • zzz, ggg, kkk 가 출력됨
    • 여러개도 가능
      <c:forTokens var="temp" items="zzz ggg kkk" delims=" ">
      ${temp}<br />
      </c:forTokens>
      <c:forTokens var="temp" items="zzz$ggg%kkk^sss" delims="$%^">
      ${temp}<br />
      </c:forTokens>
    1. 날짜 관련 태그
    • type 부분에 date, time을 설정하면 각각 날짜와 시간이 출력됨
      <fmt:formatDate value="<%= new Date()%>" type="both"/>
    1. 숫자 관련 태그
    • 세자리마다 끊어서 쉼표포함 출력
    • 소숫점 둘째자리까지만 출력
      <fmt:formatNumber value="123456789" groupingUsed="true"/>
      <fmt:formatNumber value="3.141582" patter="#.##"/>

+ Recent posts