JSTL

JSTL (Jsp Standard Tag Library)


JSTL์ด๋ž€?

EL์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์•„์ง if , for ์™€ ๊ฐ™์€ java ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค.

JSTL์€ JSP์˜ ๊ธฐ๋ณธ tag๊ฐ€ ์•„๋‹Œ ํ™•์žฅ tag์ด๋‹ค.

์—ฐ์‚ฐ์ด๋‚˜ ์กฐ๊ฑด๋ฌธ์ด๋‚˜ ๋ฐ˜๋ณต๋ฌธ์ธ if๋ฌธ, for๋ฌธ, DB๋ฅผ JSTL๋ฅผ ํ†ตํ•ด ํŽธํ•˜๊ฒŒ
์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

JSTL์˜ ์‚ฌ์šฉ


JSTL์€ JSP์˜ ํ™•์žฅ ํƒœ๊ทธ์ธ Library์ด๋ฉฐ ๋”ฐ๋กœ ~.jar ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„
์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

  1. JSTL API + ๊ตฌํ˜„์ฒด ๋ฒˆ๋“ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ https://mvnrepository.com/artifact/javax.servlet/jstl/1.2

  2. JSTL API
    1๋ฒˆ๊ณผ ๊ฐ™์ด ๋ฒˆ๋“ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์šด๋ฐ›์•˜๋‹ค๋ฉด API๋Š” ๋‹ค์šด๋กœ๋“œ๋ฐ›์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
    https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/javax.servlet.jsp.jstl-api/1.2.2
  3. JSTL Implementation(๊ตฌํ˜„์ฒด)
    http://tomcat.apache.org/
    ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋Š” tomcat์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™ˆํŽ˜์ด์ง€์—์„œ
    ์ œ๊ณตํ•ด์ค€๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž˜ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด ์ž๋ฐ”์—์„œ import๋ฌธ์„ ์„ ์–ธํ•˜๋“ฏ JSP์—์„œ๋„
JSTL ํ™•์žฅ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด taglib ์ง€์‹œ์ž๋กœ ๋ผ์ด๋ฒ„๋ฆฌ๋ฅผ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!-- ์ง€์‹œ์ž -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSTL tag


JSTL์€ ์ž๋ฐ”์˜ ๋ณ€์ˆ˜์„ ์–ธ, if, for์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ง€์›ํ•œ๋‹ค.

๋ณ€์ˆ˜์„ ์–ธ<c:set>

JSTL์˜ ๋ณ€์ˆ˜ ์„ ์–ธ์€ ๋‹ค๋ฅธ ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ง€์ •๋œ Scope์— ์ €์žฅ๋œ๋‹ค.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="name" value="ํ™๊ธธ๋™"/>
<c:set var="age" value="22" scope="session"/>
<!-- Scope Default = page -->

์กฐ๊ฑด๋ฌธ<c:if>/<c:choose>

์ž๋ฐ”์™€ ๋˜‘๊ฐ™์ด if๋ฌธ๊ณผ switch์™€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” choose๊ฐ€ ์žˆ๋‹ค.
else ๊ธฐ๋Šฅ์€ ๋”ฐ๋กœ ์—†์œผ๋ฉฐ if๋ฅผ ์ค‘๋ณต์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

EL tag๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:set var="num" value="30"/>
<c:set var="num2" value="20"/>

<!-- if else -->
<c:if test="${num == 30}">
    num์€ 30์ด๋‹ค.
</c:if>
<c:if test="${num == 20}">
    num์€ 20์ด๋‹ค.
</c:if>

<!-- switch -->
<c:choose>
    <c:when test="${num == 30}">
        num์€ 30์ด๋‹ค.
    </c:when>
    <c:otherwise>
        num์€ 20์ด๋‹ค.
    </c:otherwise>
</c:choose>

๋ฐ˜๋ณต๋ฌธ<c:forEach>/<c:forTokens>

for(int i = 0 ; i < 10 ; i++){
    System.out.println(i+". ๋ฐ˜๋ณต๋ฌธ ํ…Œ์ŠคํŠธ");
}

Java์— ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋˜‘๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค.

  • int i = 0 / var = โ€œiโ€ begin = โ€œ0โ€
  • i < 10 / end = โ€œ10โ€
  • i++ / step = โ€œ1โ€
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forEach var="i" begin="0" end="9" step="1">
   <c:out value="${i}"/>. ๋ฐ˜๋ณต๋ฌธ ํ…Œ์ŠคํŠธ 

</c:forEach>
<!-- list, array -->
<c:forEach var="i" items="${list}" step="1">
     <c:out value="${i}"/>
</c:forEach>

<!-- StringTokenizer -->
<c:forTokens var="abc" items="์•ˆ๋…•/ํ•˜์„ธ์š”/ํ™๊ธธ๋™/์ž…๋‹ˆ๋‹ค" delims="/" >
    <c:out value="${abc}"/>
<c:forTokens>

๋งŒ์•ฝ ์œ„์™€๊ฐ™์ด array๋‚˜ list๋ฅผ ๋ฐ˜๋ณต์‹œ ์‹œ์ž‘๊ณผ ๋์„ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„
์ž๋™์œผ๋กœ ๋“ค์–ด์žˆ๋Š” ๊ฐ’์˜ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ํ•œ๋‹ค.

<c:redirect>

๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ง€์ •๋œ url๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ```html <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ```

Categories:

Updated:

Leave a comment