<!-- JSTL에서 기본 기능을 사용하기 위한 taglib 추가 -->
<!-- 추가로 JSTL Lib를 프로젝트에 추가 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- prefix : JSTL 태그를 사용할때 태그 이름 앞에 붙일 접두사 (alias 같은 별칭과 비슷한 개념)
- uri : 태그 라이브러리의 name space URI 식별자
< 라이브러리 설치하기 >
JSTL 사용하기
JSTL 사용하여 page영역에 값 넣기
<c:set var="num" value="100" scope="session" /> = request.setAttribute("num", "100");
${num} <!-- El을 이용해서 출력 -->
<c:out value="${num}" /> <!-- <c:out> 을 통해 출력
- <c:set>: 변수에 값을 설정, 기본적으로 page영역에 저장이 된다
- 특정 영역에 저장하고 싶다면 scope속성 활용
JSTL을 활용한 조건문
- 위에 저장된 num의 값이 100보다 크거나 같다면 '100보다 큽니다' 아니면 '100보다 작습니다'를 출력
<c:if test="${num ge 100}">
100보다 크거나 같습니다.
</c:if>
<c:if test="${num lt 100}">
100보다 작습니다.
</c:if> <br>
<c:choose>: 여러 조건에 따라 처리를 달리 할 때
- 다중 if문
- time 값이 아침 -> 토스트 / 점심 -> 비빔밥 / 저녁-> 족발 / 그외-> 라면
<c:set var="time" value="점심" />
<c:choose>
<c:when test="${time == '아침' }">
토스트
</c:when>
<c:when test="${time == '점심' }">
비빔밥
</c:when>
<c:when test="${time == '저녁' }">
족발
</c:when>
<c:otherwise>
라면
</c:otherwise>
</c:choose>
<c:forEach>: 배열과 같은 집합체에 저장되어 있는 값들을 반복 처리를 위해 사용
<c:forEach [var="변수 이름" items="배열과 같은 집합체">
몸체
</c:forEach>
- JSTL 반복문
- = for(int i = 1; i <= 10; i++) {
<c:forEach var="i" begin="1" end="10" step="1"> <!-- 1부터 10까지 1씩 증가하는 반복문 -->
${i} <br>
</c:forEach>
- 구구단 만들기
<table border="1px">
<c:forEach var="i" begin="2" end="5" step="1">
<tr>
<c:forEach var="j" begin="1" end="9" step="1">
<td>${i}*${j}=${i*j}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
- ArrayList 출력하기
<%
ArrayList<String> idol = new ArrayList<String>();
idol.add("제이홉");
idol.add("지수");
idol.add("제니");
idol.add("로제");
idol.add("리사");
pageContext.setAttribute("idol", idol);
%>
(기존 출력 방법)
for (String name : idol) {
<%=name%>
}
( <c:forEach> 사용해서 출력 ) ->
<c:forEach items="${idol}" var="name">
${name}
</c:forEach>
- DTO 출력하기
객체생성
<%
MemberDTO dto1 = new MemberDTO("youngD", "1234", "영디", "광주");
MemberDTO dto2 = new MemberDTO("oldD", "5678", "올드디", "서울");
MemberDTO dto3 = new MemberDTO("kidsD", "9999", "키즈디", "영국");
MemberDTO dto4 = new MemberDTO("babyD", "7777", "베이비디", "전주");
MemberDTO dto5 = new MemberDTO("DD", "4567", "디디", "제주");
ArrayList<MemberDTO> list = new ArrayList<MemberDTO>();
list.add(dto1);
list.add(dto2);
list.add(dto3);
list.add(dto4);
list.add(dto5);
pageContext.setAttribute("list", list);
%>
- table 태그를 사용해서 넣어주기
<table border="1px">
<tr>
<td>번호</td>
<td>아이디</td>
<td>비밀번호</td>
<td>닉네임</td>
<td>주소</td>
</tr>
<c:set var="i" value="1" />
<c:forEach items="${list}" var="dto">
<tr>
<td>${i}</td>
<td>${dto.id}</td>
<td>${dto.pw}</td>
<td>${dto.nick}</td>
<td>${dto.addr}</td>
</tr>
<c:set var="i" value="${i + 1}" />
</c:forEach>
varStatus 속성 사용하여 출력하기
- varStatus: 배열같은 집합체에서 항목의 인덱스 값을 사용해야 할 때 사용
인덱스와 반복 횟수 등과 같은 반복상태 관련 정보를 프로퍼티로 알려준다.
<c:forEach varStatus="i" items="${list}" var="dto">
<tr>
<td>${i.count}</td> <!-- count 프로퍼티 : 루핑을 돌 때 현재 몇 번째를 반복 중인지 알려준다. 1부터 순서 부여 -->
<td>${dto.id}</td>
<td>${dto.pw}</td>
<td>${dto.nick}</td>
<td>${dto.addr}</td>
</tr>
</c:forEach>
'Study > JSP' 카테고리의 다른 글
[JSP] HashMap (2) | 2023.09.24 |
---|---|
[JSP] command패턴 (2) | 2023.09.21 |
[JSP] FrontController 패턴 (2) | 2023.09.18 |
[JSP] JSTL (1) - 페이지값과 dto 가져오기, 내장객체 접근하기, parameter 처리 (2) | 2023.09.01 |