JSTL์ด๋ (JavaServer Pages Standard Tag Library)์ ์ฝ์๋ก Java EE ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ซํผ์ ์ํ ์ปดํฌ๋ํธ ๋ชจ์์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ํ๊ทธ๋ฅผ ํ์คํํ์ฌ JSP๋ด์์ JAVA์ฝ๋๋ฅผ ๋ ๊น๋ํ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
| ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ์ธ๋ถ ๊ธฐ๋ฅ | ์ ๋์ด | ๊ด๋ จ URI |
|---|---|---|---|
| ์ฝ์ด | ๋ณ์ ์ง์, ํ๋ฆ ์ ์ด, ๋ฐ๋ณต๋ฌธ ์ฒ๋ฆฌ, URL ์ฒ๋ฆฌ | C | http://java.sun.com/jstl/core |
| ๊ตญ์ ํ | ์ง์ญ, ๋ฉ์์ง ํ์, ์ซ์ ๋ฐ ๋ ์ง ํ์ | fmt | http://java.sun.com/jsp/jstl/fmt |
| XML | XML ์ฝ์ด, ํ๋ฆ ์ ์ด, XML ๋ณํ | x | http://java.sun.com/jsp/jstl/xml |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค | SQL | sql | http://java.sun.com/jsp/jstl/sql |
| ํจ์ | ์ปฌ๋ ์ ์ฒ๋ฆฌ, ๋ฌธ์์ด ์ฒ๋ฆฌ | fn | http://java.sun.com/jsp/jstl/functions |
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
โ๏ธ<c:set>: JSPํ์ด์ง์์ ๋ณ์๋ฅผ ์ง์
<c:set var="id" value="yiheeng" scope="page"/>
<c:set var="name" value="์ดํ" scope="page"/>
.
.
<body>
${id} <br>
${name}
</body>
--> ์ถ๋ ฅ
yiheeng
์ดํ
โ๏ธ<c:remove>: ์ง์ ๋ ๋ณ์๋ฅผ ์ ๊ฑฐ
<c:set var="id" value="yiheeng" scope="page"/>
<c:set var="name" value="์ดํ" scope="page"/>
<c:remove var="id"> <%--๋ณ์๋ฅผ ์ ๊ฑฐํจ--%>
.
.
<body>
${id} <br>
${name}
</body>
--> ์ถ๋ ฅ
์ดํ
โ๏ธ<c:if>: ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋ ๋ธ๋ก์ ์คํ
<c:set var="id" value="yiheeng" scope="page"/>
<c:set var="name" value="์ดํ" scope="page"/>
<c:if test="${true}">
์ฐธ์
๋๋ค. <br>
</c:if>
<c:if test="${11==11}">
๋ ๊ฐ์ ๊ฐ์ต๋๋ค.<br>
</c:if>
<c:if test="${11!=11}">
๋ ๊ฐ์ ๊ฐ์ง์์ต๋๋ค.<br>
</c:if>
<c:if test="${id=='yiheeng'}&&(name=='์ดํ')}">
์์ด๋๋ ${id}๊ณ , ์ด๋ฆ์ ${name}์
๋๋ค.
</c:if>
--> ์ถ๋ ฅ
์ฐธ์
๋๋ค.
๋ ๊ฐ์ ๊ฐ์ต๋๋ค.
์์ด๋๋ yiheeng๊ณ , ์ด๋ฆ์ ์ดํ์
๋๋ค.
โ๏ธ<c:choose>: ์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์ฝ๋๋ฅผ ์คํ
-- <c:when>: <c:choose> ๋ด์์ ๊ฐ ์กฐ๊ฑด์ ๋ํด ์คํํ ์ฝ๋ ๋ธ๋ก์ ์ง์
-- <c:otherwise>: <c:choose> ๋ด์์ ๋ชจ๋ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ ์คํํ ์ฝ๋ ๋ธ๋ก์ ์ง์
<c:set var="id" value="yiheeng" scope="page"/>
<c:choose>
<c:when test='${empty id}'> <%--id๊ฐ ๋น์ด์๋์ง ํ์ธ--%>
์์ด๋๋ฅผ ์
๋ ฅํ์ธ์.
</c:when>
<c:otherwise>
์์ด๋๋ ${id}์
๋๋ค.
</c:otherwise>
</c:choose>
--> ์ถ๋ ฅ(์์ด๋๊ฐ๋น์ด์์ ๊ฒฝ์ฐ)
์์ด๋๋ฅผ ์
๋ ฅํ์ธ์.
--> ์ถ๋ ฅ(์์ด๋๊ฐ๋น์ด์์ง ์์ ๊ฒฝ์ฐ)
์์ด๋๋ yiheeng์
๋๋ค.
โ๏ธ<c:forEach>: ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์ ์ ๊ฐ ์์์ ๋ํด ์ฝ๋๋ฅผ ์คํ
<c:forEach var="๋ณ์๋ช
" items="๋ฐ๋ณตํ ๊ฐ์ฒด์ด๋ฆ" begin="์์๊ฐ" end="๋ง์ง๋ง๊ฐ"
step="์ฆ๊ฐ๊ฐ" varStatus="๋ฐ๋ณต์ํ๋ณ์์ด๋ฆ>
๊ตฌ๊ตฌ๋จ 2๋จ
<c:forEach var="i" begin="1" end="10" step="1">
2*${i} = ${2*i} <br>
</c:forEach>
<br>
<c:set var="fruits" value="์ฌ๊ณผ,๋ฐ๋๋,์ฒญํฌ๋,๋ธ๊ธฐ"/>
<c:forEach var="fruit" items="${fruits}" delims=","> <%--๊ตฌ๋ถ์ ,๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ--%>
${token}
</c:forEach>
--> ์ถ๋ ฅ
๊ตฌ๊ตฌ๋จ 2๋จ
2*1 = 2
2*2 = 4
2*3 = 6
2*4 = 8
2*5 = 10
2*6 = 12
2*7 = 14
2*8 = 16
2*9 = 18
์ฌ๊ณผ,๋ฐ๋๋,์ฒญํฌ๋,๋ธ๊ธฐ
โ๏ธ<c:forTokens>: ๊ตฌ๋ถ์๋ก ๋ถ๋ฆฌ๋ ๊ฐ๊ฐ์ ํ ํฐ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ
โ๏ธ<c:import>: URL์ ์ด์ฉํ์ฌ ์ธ๋ถ ๋ฆฌ์์ค(ํ์ด์ง, ํ์ผ ๋ฑ)๋ฅผ jsp ํ์ด์ง์ ์ถ๊ฐ
โ๏ธ<c:redirect>: ์ง์ ๋ URL๋ก ๋ฆฌ๋ค์ด๋ ํธ (response.sendRedirect()๊ธฐ๋ฅ ์ํ)
ํด๋น jsp๋ก ์์ฒญํ๋ฉด ๋ฐ๋ก redirect์ค์ ๋ ๊ฒฝ๋ก๋ก ๊ฐ๊ฒ๋จ.
<c:redirect url="/test/member.jsp">
<c:param name="id" value="yiheeng" />
<%--์ด๋ํ ํ์ด์ง๋ก ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ ์ค์ --%>
</c:redirect>
โ๏ธ<c:url>: ์์ฒญ ๋งค๊ฐ๋ณ์๋ก๋ถํฐ URL์ ์์ฑ
<c:url var="๋ณ์์ด๋ฆ" value="URL๊ฒฝ๋ก" [scope="scope์์ฑ ์ค ํ๋"]>
<c:param name="๋งค๊ฐ๋ณ์์ด๋ฆ" value="์ ๋ฌ๊ฐ" />
</c:url>
<c:url var="url1" value="/test/member.jsp">
<c:param name="id" value="yiheeng" />
<%--์ด๋ํ ํ์ด์ง๋ก ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ ์ค์ --%>
</c:url>
.
.
.
<a href='${url1}'>ํ์์์ด๋์ถ๋ ฅ</a>
โ๏ธ<c:out>: ๋ณ์๋ ํํ์์ ๊ฐ์ ์ถ๋ ฅ
<c:out value="์ถ๋ ฅ๊ฐ" default="๊ธฐ๋ณธ๊ฐ" [escapeXml="boolean๊ฐ"] />
โ๏ธ<c:catch>: ์์ธ๋ฅผ ์ฒ๋ฆฌ
โ๏ธ<c:param>: ๋ค๋ฅธ ํ๊ทธ๋ก ์ ๋ฌํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>