ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 35일차-JSTL TAG
    백엔드(웹 서버, WAS)/Spring 2024. 3. 12. 12:44

    JSTL 등록

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

     

    SET TAG

    <%
    	session.setAttribute("myId", "admin");
    	session.setAttribute("uId", 49274);
    %>
    	<!-- el 태그에서 변수를 표현하고 싶다면 set 태그로 먼저 선언해야 한다 -->
    	<%-- <c:set var="변수명" value="값" scope="영역"/> --%>
    	<%-- <c:set var="변수명" [scope="영역"]>값</c:set> --%>
    	<h3>OPTION</h3>
    	<ul>
    		<li>var : el 태그에서 호출할 이름</li>
    		<li>value : 이때 보여줄 값</li>
    		<li>scope : 저장 영역(page, request, session, application 지정 안하면 page가 기본값이다)</li>
    	</ul>
    	
    	<!-- value 속성 -->
    		<c:set var="name1" value="test" scope="page"/>
    		<c:set var="name2" value="${sessionScope.myId}"/>
    		<c:set var="name3" value="${sessionScope.myId}${sessionScope.uId}" scope="request"/>
    	<!-- 태그 몸체 -->
    	<c:set var="name4">test2</c:set>
    	<p>${name1}</p>
    	<p>${name2}</p>
    	<p>${name3}</p>
    	<p>${name4}</p>
    	
    	<h3>속성 삭제</h3>
    	<%-- <c:remove var="변수명"/> --%>
    	<c:remove var="name3"/>
    	<p>${name1}</p>
    	<p>${name2}</p>
    	<p>${name3}</p>
    	<p>${name4}</p>

     

    IF TAG

    	<ul>
    		<li>자바에서 if문과 비슷한 기능을 제공한다</li>
    		<li>c:if test="조건" var="변수명"</li>
    		<li>var 안에는 test 안의 조건 결과(true|false) 를 지정된 변수에 저장할 수 있다</li>
    		<li>c:if 에는 else 가 없다</li> 
    	</ul>
    	<%if(true) { %>
    		스크립틀릿<br/>
    		항상 실행된다<br/>
    	<%} %>
    	<c:if test="true">
    		jstl<br/>
    		항상 실행된다<br/>
    	</c:if>
    	<c:set var="myId">admin2</c:set>
    	<c:if test="${myId eq 'admin'}">
    		myId 는 admin 이 맞습니다<br/>
    	</c:if>
    	<c:if test="${myId ne 'admin'}">
    		myId 는 admin 이 아닙니다<br/>
    	</c:if>

    CHOOSE TAG

    <%
    	String num = request.getParameter("num");
    %>
    <%-- 	<h1>SCRIPTLET <%=num %></h1>
    	<h1>EL_TAG ${param.num}</h1> --%>
    	<ul>
    		<li>자바에서 switch 구문과 비슷한 형태이다(조건문이 사용가능하다)</li>
    		<li>c:when 태그에 조건을 넣어서 실행하도록 한다(if)</li>
    		<li>c:otherwise 로 어떠한 조건에도 해당되지 않는 내용을 실행한다(else)</li>
    	</ul>
    	<!-- 파라미터의 값에 따른 메시지 출력 -->
    	<c:choose>
    		<c:when test="${param.num eq '0'}">파라미터 값은 0 입니다</c:when>
    		<c:when test="${param.num eq '1'}">파라미터 값은 1 입니다</c:when>
    		<c:when test="${param.num eq '2'}">파라미터 값은 2 입니다</c:when>
    		<c:otherwise>파라미터 값은 0~2 사이에 있어야 합니다 </c:otherwise>
    	</c:choose>

    FOTEACH

    <ul>
        <li>forEach는 향상된 for문과 비슷하다</li>
        <li>c:forEach var="변수" items="컬렉션" begin="시작값" end="끝값" step="증가값"</li>
        <li>item 속성에는 array, collection, map 등이 올 수 있다</li>
    </ul>
    <!-- 일반적인 for문 처럼 쓸 수 있다 -->
    <c:forEach var="i" begin="1" end="10" step="1">
        ${i}	
    </c:forEach><hr/>
    
    <!-- sports 배열에 있는 모든 값을 출력하기 -->
    <c:forEach var="i" items="<%=sports %>" varStatus="stat">
        ${stat.index}:${i}<br/>
    </c:forEach><hr/>
    
    <!-- sports 배열에 있는 1,2,3번 인덱스 출력 -->
    <c:forEach var="item" items="<%=sports %>" varStatus="stat" begin="1" end="3" step="1">
        ${stat.index}:${item}<br/>	
    </c:forEach><hr/>
    
    <!-- map 에 있는 모든 내용 출력하기 -->
    <c:forEach var="item" items="<%=map %>">
        ${item.key}:${item.value}<br/>
    </c:forEach>

     

Designed by Tistory.