
6월 17일 내용정리
1.JSTL태그 <c:if>
자바의 if문과 비슷한 기능을 제공한다.
<c:if test="조건식">
조건이 참일 경우 실행할 문장
</c:if>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:if test = "${param.color==1 }">
<span style= "color:red;">빨강</span>
</c:if>
<c:if test = "${param.color==2 }">
<span style= "color:yellow;">노랑</span>
</c:if>
<c:if test= "${param.color==3 }">
<span style="color:green;">초록</span>
</c:if>
</body>
</html>
2.JSTL태그 <c:choose>
<c:if>은 else를 사용 할수 없기 때문에 if문을 여러번 중복해서 써야됨
<c:choose>에서 <c:when>, <c:otherwise>와 함께 사용하여 <c:if>단점을 극복
자바의 switch문처럼 사용됨.
<c:choose>
<c:when test="조건1">몸체1</c:when> ->조건1에 만족할때
<c:when test="조건2">몸체1</c:when> ->조건2에 만족할때
<c:otherwise>몸체3</c:otherwise> ->조건에 만족하지않을때
</c:choose>
3.JSTL태그 <c:forEach>
배열, 컬렉션, 맵 등과 같은 집합체에 저장되어, 있는 값들을 순차적으로 꺼낼때 사용
자바의 향상된 for문 형태
<c:forEach var="변수이름" items="${배열이름}" varStatus="status">
${변수이름}
</c:forEach>
*varStatus="status" -> 반복상태 정보를 위한 변수
자바의 for문
<c:forEach var="i" begin="시작 번호" end="끝 번호" step="증가치">
내용
</c:forEach>
4.<c:forEach>관련 추가태그
{status.count}현재 몇 번째를 반복 중인지 알려줌.
1부터의 순서.
{status.last}현재 루프가 마지막인지 여부를 알려준다.boolean타입
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String[] movielist={"타이타닉","파이스토리"};
pageContext.setAttribute("movielist", movielist );
%>
<table border="1" style="width:100%; text-align:center;">
<tr>
<th>index</th><th>count</th><th>title</th>
</tr>
<c:forEach var="title" items="${movielist }" varStatus="status">
<tr>
<td>${status.index}</td>
<td>${status.count }</td>
<td>${title }</td>
</tr>
</c:forEach>
</table>
<c:forEach var="movie" items="${movielist}" varStatus="aaa">
<!-- for문과 동일해서 안에 내용 반복 -->
${movie}<c:if test="${not aaa.last }">,</c:if><br>
</c:forEach>
<c:forEach var="i" begin="1" end="10" step="2">
5*${i }=${5*i }
</c:forEach>
<table border="1" style="width:100%; text-align:center;">
<tr>
<th>index</th><th>count</th><th>title</th>
</tr>
<c:forEach var="title" items="${movielist } begin="1" end="3" step="1" varStatus="status">
<tr>
<td>${status.index}</td>
<td>${status.count}</td>
<td>${title}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
5.<c:forTokens>
문자열을 구분자로 분리해서 하나씩 추출
<c:forTokens var="토큰을 저장할 변수" items="토큰으로 나눌 문자열" delims="구분자">
몸체
</c:forTokens>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forTokens var="city" items="서울.인천,대구.부산" delims=",">
${city }<br>
</c:forTokens>
<c:forTokens var="city" items="서울.인천,대구.부산" delims=",.">
${city }<br>
</c:forTokens>
</body>
</html>
6.JSTL fmt
JSTL 국제화 지역화(달러,엔화...) 태그, 날짜와 숫자 형식을 다루는데 사용
(1)<fmt:formatNumber>


(2)<fmt:formatDate>
아래 코드 참고
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!--taglib은 아래 2가지 모두 사용-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<pre>
<!--오늘날짜 객체생성 하기 위함-->
<c:set var="now" value="<%=new java.util.Date() %>"></c:set>
\${now }:${now}
<fmt:formatDate value="${now}"></fmt:formatDate>
date : <fmt:formatDate value="${now}" type="date"></fmt:formatDate>
time : <fmt:formatDate value="${now}" type="time"></fmt:formatDate>
both : <fmt:formatDate value="${now}" type="both"></fmt:formatDate>
default : <fmt:formatDate value="${now}" type="both" dateStyle="default" timeStyle="default"></fmt:formatDate>
short : <fmt:formatDate value="${now}" type="both" dateStyle="short" timeStyle="short"></fmt:formatDate>
medium : <fmt:formatDate value="${now}" type="both" dateStyle="medium" timeStyle="medium"></fmt:formatDate>
long : <fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long"></fmt:formatDate>
full : <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full"></fmt:formatDate>
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초":
<fmt:formatDate value="${now}" pattern="yyyy년 MM월 dd일 hh시 mm분 ss초"></fmt:formatDate>
</pre>
</body>
</html>