JSTL ๊ฐ์ ๋ฐ ์ค์น
JSP์ ๊ฒฝ์ฐ์๋ HTML ํ๊ทธ์ ๊ฐ์ด ์ฌ์ฉ๋์ด์ ์ ์ฒด์ ์ธ ์ฝ๋์ ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๋ค. JSTL์ ์ด๋ฌํ ๋จ์ ์ ๋ณด์ํ๊ณ ์ ๋ง๋ค์ด์ง ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ค์น
์์ jakarta-taglibs-standard-1.1.2.zip๋ฅผ ๋ค์ด๋ฐ๋๋ค.
๋ค์ด๋ฐ์์ ์์ถ์ ํ๋ฉด /lib
ํด๋ ๋ด์ ์๋ jstl.jar
ํ์ผ๊ณผ standard.jar
ํ์ผ์ apache ํด๋ lib์์ ๋ถ์ฌ๋ฃ์ด์ค๋ค.
JSTL ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ค์ฏ๊ฐ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํด์ค๋ค.
Core
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ถ๋ ฅ, ์ ์ด๋ฌธ, ๋ฐ๋ณต๋ฌธ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด์๋ค.
<%@ taglib uri=http://java.sun.com/jsp/jstl/core prefix=โcโ %>
ํด๋น ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ c
๋ก ์ฐ๊ฒ ๋ค๊ณ prefix ํด์ค๋ค.
์ถ๋ ฅํ๊ทธ <c:out>
<c:out value=โ์ถ๋ ฅ๊ฐโ default=โ๊ธฐ๋ณธ๊ฐโ escapeXml=โtrue or falseโ>
๋ณ์ ์ค์ ํ๊ทธ <c:set>
<c:set var=โ๋ณ์๋ช
โ value=โ์ค์ ๊ฐโ target=โ๊ฐ์ฒดโ property=โ๊ฐโ scope=โ๋ฒ์โ>
๋ณ์ ์ ๊ฑฐ <c:remove>
<c:remove var=โ๋ณ์๋ช
โ scope=โ๋ฒ์โ>
์์ธ์ฒ๋ฆฌ <c:catch>
<c:catch var=โ๋ณ์๋ช
โ>
์ ์ด๋ฌธ(if) <c:if>
<c:if test=โ์กฐ๊ฑดโ var=โ์กฐ๊ฑด ์ฒ๋ฆฌ ๋ณ์๋ช
โ scope=โ๋ฒ์โ>
์ ์ด๋ฌธ(switch) <c:choose>
<c:choose>
<c:when test=โ์กฐ๊ฑดโ> ์ฒ๋ฆฌ ๋ด์ฉ </c:when>
<c:otherwise> ์ฒ๋ฆฌ ๋ด์ฉ </c:otherwise>
</c:choose>
๋ฐ๋ณต๋ฌธ(for) <c:forEach>
<c:forEach items=โ๊ฐ์ฒด๋ช
โ begin=โ์์ ์ธ๋ฑ์คโ end=โ๋ ์ธ๋ฑ์คโ step=โ์ฆ๊ฐ์โ var=โ๋ณ์๋ช
โ varStatus=โ์ํ๋ณ์โ>
ํ์ด์ง ์ด๋ <c:redirect>
<c:redirect url=โurlโ>
ํ๋ผ๋ฏธํฐ ์ ๋ฌ <c:param>
<c:param name=โํ๋ผ๋ฏธํฐ๋ช
โ value=โ๊ฐโ>
์์
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<c:set var="vatName" value="varValue"/>
vatName : <c:out value="${vatName}"/>
<br />
<c:remove var="vatName"/>
vatName : <c:out value="${vatName}"/></h3>
<hr />
<c:catch var="error">
<%=2/0%>
</c:catch>
<br />
<c:out value="${error}"/>
<hr />
<c:if test="${1+2==3}">
1 + 2 = 3
</c:if>
<c:if test="${1+2!=3}">
1 + 2 != 3
</c:if>
<hr />
<c:forEach var="fEach" begin="0" end="30" step="3">
${fEach}
</c:forEach>
</body>
</html>
vatName : varValue
vatName :
java.lang.ArithmeticException: / by zero
1 + 2 = 3
0 3 6 9 12 15 18 21 24 27 30