JSTL(JavaServer Pages Standard Tag Library)

BaeSeBinยท2024๋…„ 12์›” 25์ผ
0

JSP

๋ชฉ๋ก ๋ณด๊ธฐ
3/3

๐Ÿ˜Š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="${์กฐ๊ฑด์‹}">
    <!-- ์กฐ๊ฑด์ด true์ผ ๋•Œ ์‹คํ–‰ -->
</c:if>
<c:choose>๋Š” "์—ฌ๋Ÿฌ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒ"ํ• ๋•Œ ์‚ฌ์šฉํ•จ.
nearly Java์˜ switch-case๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ํ•จ
<c:choose>
    <c:when test="${์กฐ๊ฑด์‹1}">
        <!-- ์กฐ๊ฑด์‹1์ด true์ผ ๋•Œ ์‹คํ–‰ -->
    </c:when>
    <c:when test="${์กฐ๊ฑด์‹2}">
        <!-- ์กฐ๊ฑด์‹2๊ฐ€ true์ผ ๋•Œ ์‹คํ–‰ -->
    </c:when>
    <c:otherwise>
        <!-- ๋ชจ๋“  ์กฐ๊ฑด์‹์ด false์ผ ๋•Œ ์‹คํ–‰ -->
    </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>

0๊ฐœ์˜ ๋Œ“๊ธ€