๐JSTL
JSP์์ ๋์ํ๋ ์๋ก์ด ํ๊ทธ๋ค์ ๋ฌถ์์.
JSTL์ ์๋ฐ ๋ฌธ๋ฒ๋ณด๋ค ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ ์ด๋ฌธ์ด๋ ๋ฐ๋ณต๋ฌธ, ์ ์ธ๋ฌธ ๋ฑ์ ์ฒ๋ฆฌ ํ ์ ์๊ณ , ํ์ฅ์ด ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์์.
JSTL ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐํ๊ธฐ ์ํด build.grade์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํจ.

JSP์์ JSTL ์ฌ์ฉํ๊ธฐ
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
์์ ๊ฐ์ <% @ %>๋ก ์์ฑ๋๋ ์ฝ๋๋ฅผ ์ง์์ ๋ผ๊ณ ํจ. JSP์์ JSTL ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ ์ธํ๋ ํ๊ทธ์.
๐<c:forEach>๋ฅผ ํ์ฉํ ๋ฐ๋ณต๋ฌธ ์ฒ๋ฆฌ
์ปฌ๋ ์
๋ฐ์ดํฐ๋ฅผ ์ํํ๊ฑฐ๋, ํน์ ๋ฒ์์ ์ซ์๋ฅผ ๋ฐ๋ณตํ๋ ๋ฐ ์ฌ์ฉ๋จ
var : ๋ฐ๋ณต์์ ์ฌ์ฉํ ๋ณ์ ์ด๋ฆ
items : ๋ฐ๋ณตํ ๋ฐ์ดํฐ(List, ๋ฐฐ์ด ๋ฑ)
begin/end : ๋ฐ๋ณต์ ์์/๋ ๊ฐ
step : (์ ํ์ฌํญ) ์ฆ๊ฐ ๊ฐ, ๊ธฐ๋ณธ ๊ฐ์ 1
ex) ์ปฌ๋ ์
๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต ์ฒ๋ฆฌํ ๋
<c:forEach var="item" items="${collection}">
</c:forEach>
ex) ์ซ์ ๋ฒ์๋ฅผ ์ง์ ํ์ฌ ๋ฐ๋ณต ์ฒ๋ฆฌํ ๋
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<body>
<h2>Number List</h2>
<ul>
<c:forEach var="number" begin="1" end="5">
<li>${number}</li>
</c:forEach>
</ul>
</body>
</html>
๐JSTL ์ ์ด๋ฌธ
<c:if> ์ <c:choose>๊ฐ ์กด์ฌํจ
<c:if>๋ "๋จ์ ์กฐ๊ฑด"์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํจ.
test ์์ฑ์ true/false๊ฐ์ ํตํด ํ๊ทธ์ ๋ด์ฉ์ ์คํํจ.
์กฐ๊ฑด์์ด true์ธ ๊ฒฝ์ฐ์๋ง ํ๊ทธ์ ๋ด์ฉ์ด ์คํ๋จ
<c:if test="${์กฐ๊ฑด์}">
</c:if>
<c:choose>๋ "์ฌ๋ฌ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ํ"ํ ๋ ์ฌ์ฉํจ.
nearly Java์ switch-case๋ฌธ๊ณผ ์ ์ฌํ ์ญํ ์ ํจ
<c:choose>
<c:when test="${์กฐ๊ฑด์1}">
</c:when>
<c:when test="${์กฐ๊ฑด์2}">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
๐<c:set>
EL์ด๋ JSTL์ ์ด์ฉํด์ ์ ์ด๋ฌธ ์ฒ๋ฆฌ ํ ๋ ์๋ก์ด ๋ณ์๋ฅผ ์์ฑํด์ผ ํ ๋ ์ฌ์ฉํจ.
var: ์ ์ฅํ ๋ณ์์ ์ด๋ฆ
value : ์ ์ฅํ ๊ฐ
scope(์ต์
) : ๊ฐ์ ์ ์ฅํ ์ค์ฝํ(page, request, session, application). ๊ธฐ๋ณธ ๊ฐ์ page์
๊ธฐ๋ณธ ๋ฌธ๋ฒ
<c:set var="variableName" value="value" />
์์
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<body>
<c:set var="username" value="John Doe" />
<p>Username: ${username}</p>
</body>
</html>