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-๋ฌธ๋ฒ-์ ๋ฆฌ/