JSTL

JSTL ๊ฐœ์š” ๋ฐ ์„ค์น˜

JSP์˜ ๊ฒฝ์šฐ์—๋Š” HTML ํƒœ๊ทธ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜์–ด์„œ ์ „์ฒด์ ์ธ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. JSTL์€ ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ณ ์ž ๋งŒ๋“ค์–ด์ง„ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

์„ค์น˜

http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ ์—์„œ 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

Last updated