1. c:choose 태그 

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!--c는 core의 줄임말로 정의한 prefix로 태그를 사용할 수 있다. -->>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>JSTL</title>
</head>
<body>
	
	<p><a href="ex7.jsp">[이전]</a><a href="ex9.jsp">[다음]</a></p>
	
	<!-- switch-case문과 쓰임이 비슷하다. -->
	<h2>c:choose 태그</h2>
	<!-- userid에 hong -->
	<c:set var = "userid" value="admin"/>
	<!-- choose when 분기문에 다중 if문과 같다.-->
	<c:choose>
		<c:when test="${userid == 'hong'}">
		홍길동님 반갑습니다.
		</c:when>
		<c:when test="${userid == 'lim'}">
		임꺽정님 반갑습니다.
		</c:when>
		<c:when test="${userid == 'admin'}">
		관리자 전용 페이지입니다.
		</c:when>
		<!-- otherwise는 디폴트 -->
		<c:otherwise>
			등록되지 않은 사용자입니다.	
		</c:otherwise>
	</c:choose>
	
	
	<p><a href="ex7.jsp">[이전]</a><a href="ex9.jsp">[다음]</a></p>
	
</body>
</html>

c:choose태그는 자바에서 switch-case문과 쓰임이 비슷하다.

 

우선 c:set 태그로 userid에 admin이라는 값을 설정해주고 <c:choose>태그 안에 <c:when>태그를 넣어 case문과 유사하게 사용한다. 여기서 c:if 태그와 비슷하게 값이 참이라면 문자열을 출력하게된다.

마지막 c:otherwise는 default와 같다.

 

2. c:forEach 태그 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!--c는 core의 줄임말로 정의한 prefix로 태그를 사용할 수 있다. -->>
<%@ page import = "java.util.*" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL</title>
</head>
<body>
	
	<p><a href="ex8.jsp">[이전]</a><a href="ex10.jsp">[다음]</a></p>
	
	<h2>c:forEach 태그</h2>
	<h3>반복문 - 배열</h3>
	<% pageContext.setAttribute("nameList", new String[] {"홍길동","임꺽정","일지매", "이순신"}); %>
	
	<ul>
		<!--forEach-향상된 for문 / items="${nameList}에서 첫 번쨰 홍길동먼저 name으로 던져주면 ${name}으로 출력되고 다음 임꺽정도 똑같이 반복해서 출력 !-->
		<!--  begin - 출발점 / end - 종료점 -->
		<c:forEach var ="name" items="${nameList}"  begin= "2" end= "3">
		<li>${name}</li>	
		</c:forEach>
	</ul>
	
	<h3>반복문 - 배열의 시작 인덱스와 종료 인덱스 지정</h3>
	<% pageContext.setAttribute("nameList2", new String[]{"홍길동", "임꺽정", "일지매", "주먹대장", "똘이장군"}); %>
	
	<ul>
		<c:forEach var="name" items="${nameList2}" begin = "0" end ="2">
		<li>${name}</li>
		</c:forEach>
	</ul>
	
	
	<h3>반복문 - ArrayList 객체</h3>
	<%
		ArrayList<String> nameList3 = new ArrayList<String>();
		nameList3.add("홍길동");
		nameList3.add("임꺽정");
		nameList3.add("일지매");
		nameList3.add("주먹대장");
		nameList3.add("똘이장군");
		pageContext.setAttribute("nameList3", nameList3);
	%>
	
	<ul>
		<c:forEach var="name" items="${nameList3}" begin="0" end="3">
		<li>${name}</li>
		</c:forEach>
	</ul>	
	
	<h3>반복문 - 콤마로 구분된 문자열</h3>
	<% pageContext.setAttribute("nameList4", "홍길동, 임꺽정, 일지매, 주먹대장, 똘이장군"); %>
	
	<ul>
	<c:forEach var = "name" items="${nameList4}">
		<li>${name}</li>
	</c:forEach>
	</ul>
	
	
	<h3>반복문 - 특정 횟수 만큼 반복</h3>
	
	<c:forEach var ="no" begin="1" end="6">
		<!-- 리스트에서  유용하게 사용-->
		<li><a href="ex${no}.jsp">JSTL 예제${no}</a></li>
	</c:forEach>
	
	
	
	<p><a href="ex8.jsp">[이전]</a><a href="ex10.jsp">[다음]</a></p>
	
</body>
</html>

c:forEach태그는 자바에서의 향상된 for문이라고 볼 수 있다. 

<c:forEach var = "name" items="${nameList}" begin = "0" end = "3">

items="${nameList}"에서 첫 번째 값인 홍길동먼저 name으로 던져주면 ${name}으로 출력되고 그 다음 값인 임꺽정도 이와 똑같이 ${name}으로 출력된다. 여기서 begin은 시작 인덱스를 뜻하고 반대로 end는 종료 인덱스를 뜻하는데

시작 인덱스와 종료 인덱스를 각각 임의로 설정할 수 있다.

 

 

3. c:forTokens 태그

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!--c는 core의 줄임말로 정의한 prefix로 태그를 사용할 수 있다. -->>
<%@ page import = "java.util.*" %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>JSTL</title>
</head>
<body>
	<p><a href="ex9.jsp">[이전]</a><a href="ex11.jsp">[다음]</a></p>
	
	<h2>c:forTokens 태그</h2>
	<% pageContext.setAttribute("tokens", "v1=20&v2=30&op=+"); %>
	<ul>
	<!--&딜리단위로 자름  -->	
	<c:forTokens var = "item" items="${tokens}" delims="&">
	<li>${item}</li>
	</c:forTokens>
	</ul>
	
	
	
	<p><a href="ex9.jsp">[이전]</a><a href="ex11.jsp">[다음]</a></p>
	
</body>
</html>

c:forTokens태그는 delims단위로 텍스트를 잘라 출력한다.

 

 

 

 

 

 

 

'JSP' 카테고리의 다른 글

[JSP] JSTL (Jsp Standard Tag Library)  (0) 2020.10.26
[JSP] JSTL(Jsp Standard Tag Library)  (0) 2020.10.26
[JSP] EL(Expression Language)  (0) 2020.10.26
[JSP] JSP - 액션 태그 종류  (0) 2020.10.26
[JSP] JSP페이지 - 구구단 테이블 만들기  (0) 2020.10.19

+ Recent posts