-
[JSTL] if, when, forEachWEB/JSTL 2022. 9. 9. 20:16
if
-c:if test 조건절이 참이면 /c:if까지의 내용을 웹페이지에 적용 또는 표시하고
아니면 표시, 적용 없이 지나감.
-test 안의 조건식은 EL 문법을 이용함.
<c:if test="${비교연산}"></c:if>
<c:if test="${param.color==1}"> <span style="color:red; font-size:180%; font-weight:bold;">빨강</span> </c:if> <c:if test="${param.color==2}"> <span style="color:green; font-size:180%; font-weight:bold;"> 초록</span> </c:if> <c:if test="${param.color==3}"> <span style="color:blue; font-size:180%; font-weight:bold;"> 파랑</span> </c:if>
When
<c:choose> <c:when test="${param.fruit==1}"><!-- if --> <span style="color:red; font-size:180%; font-weight:bold;"> 사과</span> </c:when> <c:when test="${param.fruit==2}"><!-- else if --> <span style="color:green; font-size:180%; font-weight:bold;"> 멜론</span> </c:when> <c:when test="${param.fruit==3}"><!-- else if --> <span style="color:yellow; font-size:180%; font-weight:bold;"> 바나나</span> </c:when> <c:otherwise><!-- else --> <span style="color:silver; font-size:180%; font-weight:bold;"> 기타</span> </c:otherwise> </c:choose>
forEach
배열 저장
<% String [] movieList={"타이타닉","시네마 천국","혹성 탈출","킹콩"}; request.setAttribute("mList",movieList); // Attribute는 HashMap 형식의 리스트이므로 // 키 값만 존재하면 어떤 자료들도 보관 가능. // ArrayList 등도 위의 배열과 같이 손쉽게 보관하거나 전달 가능. %>
1. JSP 문법으로 출력
<% String [] mlist=(String[])request.getAttribute("mList"); for(String s:mlist) out.print(s+"<br>"); %>
2. EL과 JSTL을 이용해 출력(배열 요소를 이용)
<c:forEach items="${mList}" var="movie"> ${movie}<br/> </c:forEach> <!-- items="" : 반복 실행에 이용할 리스트 또는 배열을 지정 var="": 배열 또는 리스트의 값을 한번에 하나씩 저장할 때 사용할 변수 이름 -->
Table에 forEach 사용하기
<% String [] movieList={"타이타닉","시네마 천국","혹성 탈출","킹콩"}; request.setAttribute("mList",movieList); %> <table border="1" style="width:700px; text-align:center"> <tr> <th>index</th><th>count</th><th>title</th> </tr> <c:forEach items="${mList}" var="movie" varStatus="state"> <tr><td>${state.index}</td><td>${state.count}</td> <td>${movie }</td></tr> </c:forEach> </table> <!-- varStatus: 반복실행의 상태값을 갖고 있는 클래스 status: 현재 반복 순서 객체 변수 ${status.count): 1부터 시작한 반복의 현재 아이템 ${status,index}: 0부터 시작한 반복의 현재 아이템 -->
-${status.first}: 현재 루프가 처음이면 true 리턴
<ul> <c:forEach var="movie" items="${mList}" varStatus="status"> <c:choose> <c:when test="${status.first}"> <li style="font-weigth:bold; color:red;"> ${movie} </li> </c:when> <c:otherwise> <li>${movie}</li> </c:otherwise> </c:choose> </c:forEach> </ul>
-${status.last}: 현재 루프가 마지막이라면 true 리턴
<c:forEach var="movie" items="${mList}" varStatus="status"> ${movie} <c:if test="${not status.last }">, </c:if> </c:forEach>
-${status.current}: 현재 아이템
-${status.begin}: 시작값
-${status.end}: 끝값
-${status.step}: 증가값
<c:forEach var="cnt" begin="1" end="10" varStatus="status"> ${cnt}<c:if test="${not status.last }">, </c:if> </c:forEach>
<table border="1" style="width:50%; text-align:center;" align="left"> <tr><th>index</th><th>count</th><th>cnt</th></tr> <c:forEach var="cnt" begin="7" end="10" varStatus="status"> <tr><td>${status.index}</td> <td>${status.count}</td> <td>${cnt}</td></tr> </c:forEach> </table>
'WEB > JSTL' 카테고리의 다른 글
[JSTL] 정보수정, 회원&관리자 변화, 탈퇴 (0) 2022.09.09 [JSTL] 로그인, 회원가입, 로그아웃 (0) 2022.09.09 [JSTL] import, redirect, format, form, checkbox (1) 2022.09.09 [JSTL] JavaServer pages standard Tag Library (0) 2022.09.09 [JSLT] EL (0) 2022.09.09