๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

[JSTL] ๋ฌธ๋ฒ•์ •๋ฆฌ

๐Ÿ—ฃ Language/JSP



    JSTL ๋ฌธ๋ฒ• ์ •๋ฆฌ


    JSP๋กœ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋‹ค๋ณด๋ฉด JSTL์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ๋” ๊ฐœ๋ฐœ์‹œ์— ํšจ์œจ์„ฑ์ด ์ข‹์•„์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์š”


    ํ•˜๋‚˜์˜ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด, ์Šคํ”„๋ง ๋ชจ๋ธ ๊ฐ์ฒด์— ์•„๋ž˜์ฒ˜๋Ÿผ ํŠน์ • ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ,


    1
    mv.addObject("myObject", myObject);
    cs



    jspํ™”๋ฉด์—์„œ ์ € ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” jstl๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ˆœํ•˜๊ฒŒ 


    1
    $myObject.์†์„ฑ๋ช… 
    cs


    ์ด๋Ÿฐ์‹์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ทธ๋ƒฅ ์Šคํฌ๋ฆฝํŠธ๋ฆฟ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด,


    1
    2
    <% @page import="xxx.MyObject" %>
    <% MyObject my = (MyObject)request.getAttribute("myObject"); %>
    cs



    ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ ๊ฐ์ฒด๋งˆ๋‹ค ์จ์ค˜์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ jstl์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฐ์ฒด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ importํ•˜์ง€ ์•Š์•„๋„ jsp์—์„œ ์†์„ฑ์— ์ ‘๊ทผ๊ฐ€๋Šฅํ•ด์š”!


    ๋˜ํ•œ ์‚ฌ์šฉ์ž ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ถ„๋ฆฌํ–ˆ์„ ๋•Œ์—๋„ ์‹ค์ œ ์†Œ์Šค ํƒ€์ดํ•‘ ์ž์ฒด๊ฐ€ ์ค„์–ด๋“ค์ง€๋งŒ ๋‹จ์ ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด์š”




    1. taglib ์„ ์–ธ


    1
    2
    3
    4
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="c_rt" uri="http://java.sun.com/jsp/jstl/core_rt" %>
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    cs





    2. ๋ณ€์ˆ˜ ์„ ์–ธ


    1
    2
    3
    4
    5
    <c:set var="t" value="hello" scope="session"/>  --- ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ด session ์•ˆ์— ์‚ด์•„์žˆ์Œ
    <c:set value="value" target="target" property="propertyName"/> --- ์†์„ฑ์˜ value๋กœ target๊ฐ์ฒด์˜ property๊ฐ’์„ ๊ฒฐ์ •
    <c:set target="target" property="propertyName">
        body content
    </c:set> --- body content ๊ฐ’์œผ๋กœ target ๊ฐ์ฒด์˜ property๊ฐ’์„ ๊ฒฐ์ •
    cs




    3. ๋ณ€์ˆ˜ ์ œ๊ฑฐ


    1
    <c:remove var="name" scope="session" />
    cs




    4. ๋ฐ˜๋ณต๋ฌธ forEach, forTokens


    1
    2
    3
    4
    5
    <c:forEach var="i" items="${pageScope}" >  ---  pageScope ๋‚ด์žฅ๊ฐ์ฒด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ์ถœ๋ ฅ 
    <c:out value="${i}"/>   ---   pageScope ๋‚ด์žฅ๊ฐ์ฒด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ key์™€ value๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅ
    <c:out value="${i.key}:${i.value}" /><br>   ---  ์š”์†Œ๋ฅผ ๋ฝ‘์•„ ์ถœ๋ ฅ, items๋Š” ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋ฐ›์•„์„œ ๋ฐ˜๋ณต๋ฌธ ๊ตฌ์กฐ ๊ตฌ์„ฑ, var๋ณ€์ˆ˜๋Š” List๋กœ ๋ฌถ์—ฌ์žˆ๋˜ ๊ฐ๊ฐ์˜ ์š”์†Œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„
        ${i.์š”์†Œ์ด๋ฆ„}
    </c:forEach>
    cs



    1
    2
    3
    <c:forEach var="test" begin="1" end="10" step="1">   ---  ๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜์—ฌ ๋ฐ˜๋ณต. step ์ƒ๋žต ์‹œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 1
    <c:out value="${test}" /
    </c:forEach>
    cs



    1
    2
    3
    4
    <c:forEach var="test" varStatus="idx">
    <c:out value="${idx.count}" />   ---  ์นด์šดํŠธ๋Š” ํ˜„์žฌ ๋ฐ˜๋ณต๋ฌธ์ด ๋ช‡๋ฒˆ์งธ ๋Œ์•„๊ฐ€๋Š”์ง€ ๋ช…์‹œ
    <c:out value="${test[idx.index]}" /><br>   ---  ์ˆœ์ฐจ์ ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ
    </c:forEach>
    cs



    1
    2
    3
    <c:forTokens var="test" items="์„œ์šธ|์ธ์ฒœ, ๋Œ€๊ตฌ, ๋ถ€์‚ฐ, ์ฐ๊ณ " delims="," varStatus="sts">
    <c:out value="${sts.count}:${test}"/
    </c:forTokens>   ---  forTokens ์—ญ์‹œ begin, end, step ์ง€์ • ๊ฐ€๋Šฅํ•˜๊ณ , varStatus๋Š” ์ƒ๋žต๊ฐ€๋Šฅ
    cs





    5. ์„ ํƒ๋ฌธ ( if~else, switch )


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <c:choose>
        <c:when test="${emptyparam.name}">
            <form>
                ์ด๋ฆ„ : <input type="text" name="name">
                <input type="submit" value="ํ™•์ธ">
            </form>
        </c:when>
        <c:when test="${param.name == 'admin'}">
            ๊ด€๋ฆฌ์ž
        </c:when>
        <c:otherwise>
            ์•ˆ๋…•.
        </c:otherwise>
    </c:choose>
    cs




    6. ์ถœ๋ ฅ๋ฌธ System.out.println()


    1
    2
    3
    4
    5
    <c:out value="๊ฐ’" [escapeXml="{true|false}"] [default="๊ธฐ๋ณธ๊ฐ’"] />
     
    <c:out value="๊ฐ’" [escapeXml="{true|false}"] >
        ๊ธฐ๋ณธ๊ฐ’
    </c:out>
    cs





    7. ์˜ˆ์™ธ์ฒ˜๋ฆฌ


    1
    2
    3
    4
    5
    6
    <c:catch var="errmsg">
        line1
        <%=1/0 %>
        line2
    </c:catch>
    <c:out value="${errmsg}"/>
    cs


    catchํƒœ๊ทธ์˜ ์‹œ์ž‘๋ถ€๋ถ„์— ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ์„ค์ •ํ•œ ๋ณ€์ˆ˜๋กœ ์˜ˆ์™ธ ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ€์š”





    ์ฐธ์กฐ : http://itpsolver.com/jstl-๋ฌธ๋ฒ•-์ •๋ฆฌ/