56일차 내용 정리

채공부·2025년 8월 11일

JAVA & JSP & JSTL

JSTL

  • jstl 폴더 생성 후 그 안에 hello.jsp 생성
<%@taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
  • prefix 설정에 따라 앞에 c 문자가 위치한 문자는 달라진다
<h1>Java Standard Tag Library</h1>
<c:forEach var="i" begin="0" end="4">
	<p>
		Hello JSTL <strong>${i}</strong>
	</p>
</c:forEach>
  • jsp 페이지는 해당 코드를 분석해서 이런 결과를 응답
Hello JSTL 0

Hello JSTL 1

Hello JSTL 2

Hello JSTL 3

Hello JSTL 4
  • 자바 코드 버전
<%for(int i=0; i<5; i++) {%>
	<p>
		Hello JSTL <strong><%=i%></strong>
	</p>
<%} %>

JSTL 사용 설정하기

⭐ uri="import 할 경로"
    prefix="접두어"
  • test01.jsp 생성
<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%
	// 테스트를 위해 sample 데이터를 request scope 에 담는다
	List<String> names = new ArrayList<>();
	names.add("유재석");
	names.add("박명수");
	names.add("정준하");
	// "list" 라는 키값으로 request scope 에 ArrayList 객체 담아두기
	request.setAttribute("list", names);
%>

<% %> : 서블릿 영역

  • jsp 페이지로 응답을 위임했다라고 가정 (forward)
<%
	// request scope 에 "list" 라는 키값으로 저장된 친구 목록 얻어내기
	List<String> list = (List<String>)request.getAttribute("list");
%>
	<h1>친구 목록</h1>
	<ul>
		<%for(String tmp : list) {%>
			<li><%=tmp%></li>
		<%} %>
	</ul>
  • El & JSTL 사용
<h1>EL 과 JSTL 을 활용해서 위와 동일한 동작</h1>
<ul>
	<c:forEach var="tmp" items="${requestScope.list}">
		<li>${tmp}</li>
	</c:forEach>
</ul>
  • 목록 & 순서 표시
<h1>친구 목록 인덱스 표시</h1>
<ul>
	<c:forEach var="tmp" items="${list}" varStatus="status">
		<li>${tmp} <strong>인덱스 : ${status.index}</strong></li>			
	</c:forEach>
</ul>
	
<h1>친구 목록 순서 표시</h1>
<ul>
	<c:forEach var="tmp" items="${list}" varStatus="status">
		<li>${tmp} <strong>순서 : ${status.count}</strong></li>
	</c:forEach>
</ul>
  • 목록 첫 번째 & 마지막 번째 순서 여부
<h1>친구 목록 첫번째 순서인지 여부</h1>
<ul>
	<c:forEach var="tmp" items="${list}" varStatus="status">
		<li>
			${tmp}
			<strong>첫번째 : ${status.first}</strong>
			<c:if test="${status.first}">
				미남이시네요
			</c:if>
		</li>
	</c:forEach>
</ul>

<h1>친구 목록 마지막 번째 순서인지 여부</h1>
<ul>
	<c:forEach var="tmp" items="${list}" varStatus="status">
		<li>
			${tmp}
			<strong>마지막 번째 : ${status.last}</strong>
			<c:if test="${status.last}">
				하이킥.. 하이킥..
			</c:if>
		</li>
	</c:forEach>
</ul>
profile
학원 공부 내용 정리

0개의 댓글