JSTL(ํ์ค ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
JSP๋ <jsp:include>์ ๊ฐ์ ํ๊ทธ๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ถ๊ฐํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ ์ด๋ฅผ ์ปค์คํ ํ๊ทธ๋ผ๊ณ ํ๋ค.
์ปค์คํ ํ๊ทธ ์ค ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ๋ค์๋ชจ์ JSTL(JSP Standard Teg Library)๋ผ๋ ํ์ค์ ๋ง๋ค์๋ค.
JSTL์ ์ฌ์ฉํ๋ฉด ์คํฌ๋ฆฝํธ๋ฆฟ ์ฝ๋์ ์ฌ์ฉ์ ์ค์ด๋ฉด์ ๊ฐ๊ฒฐํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ดJSP ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
๊ธฐ์กด์ JSP์ฝ๋๋ ์คํฌ๋ฆฝํธ ์ฝ๋์ HTML์ฝ๋๊ฐ ๋ค์์ฌ ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ฑฐ๋, ์ฝ๋๊ฐ ๋ณต์กํด์ง์๋ก ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ , ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํ๋ค.
JSP๋ ์คํ์ฝ๋์ ํ๋ฉด์ ๊ตฌ์ฑํ๋ HTML์ฝ๋๋ฅผ ์ฝ๊ฒ ์์ ์ ์์ด์ ๊ฐ๋ฐ์ด ํธ๋ฆฌํ์ง๋ง ๋ฐ๋๋ก ์์ด๋ฉด์ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋๋น ์ง๋ค.
๋ฐ๋ณต๋ฌธ์ด๋ ์กฐ๊ฑด๋ฌธ์ JSTL์ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ๋ค๋ฉด ๋ณด๊ธฐ ์ข๊ณ ์ดํดํ๊ธฐ์ฌ์ด ์ฝ๋๋ก ์์ฑํ ์ ์๋ค.
<JSTL์ด ์ ๊ณตํ๋ ํ๊ทธ์ ์ข ๋ฅ>
1. JSTL์ฌ์ฉ ์ taglib๋๋ ํฐ๋ธ ์ถ๊ฐ
- prefix์ ๋ค์ด๊ฐ๋ string์ JSP์์ ์ฝ์ด ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ ์ ๋์ด์ด๋ค.
โ์์ ์ฝ๋๋ prefix๊ฐ "c"์ด๋ฏ๋ก <c:if>, <c:choose>๋ฑ์ผ๋ก ์ฌ์ฉ๋จ
โ๋ง์ฝ prefix๋ฅผ "A"๋ก ์ค์ ํ๋ค๋ฉด <A:if>, <A:choose>๋ก ์ฌ์ฉ๋์ด์ผํจ. ํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก prefix๋ "c"๋ก ์ ์ํจ.
- uri ์์ฑ๊ฐ์ "http://java.sun.com/jsp/jstl/core"๋ก ์ค์ ํด์ผํจ.
2. ์ฝ์ด ํ๊ทธ
<์ฝ์ดํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ>
2.1 ํ๋ฆ์ ์ด
2.1-1) <c:if>ํ๊ทธ
- <c:if>ํ๊ทธ test ์์ฑ์๋ true๋ false์ ํด๋นํ๋ boolean๊ฐ์ด ์จ๋ค. (์กฐ๊ฑด ์์ฑ)
- ๋ํ test์์ฑ์ ํํ์์ด๋ EL ๋๋ ์ ์ ๋ฌธ์์ด์ ๊ฐ์ผ๋ก ๊ฐ์ง์ ์๋ค.
2.1-2) <c:choose>, <c:when>, <c:otherwise>ํ๊ทธ
- ์๋ฐ์ switch๊ตฌ๋ฌธ๊ณผ if-else๋ธ๋ก์ ํผํฉํ ํํ๋ก ๋ค์ค ์กฐ๊ฑด์ฒ๋ฆฌ์ ์ฌ์ฉํ๋ค.
- <c:choose>ํ๊ทธ๋ ๋ค์์ <c:when>ํ๊ทธ๋ฅผ ์ค์ฒฉํด ์ฌ์ฉํ๊ณ , ๊ฐ๊ฐ์ <c:when>๋ test์์ฑ์ ๊ฐ์ด true์ผ๋ ๋ด๋ถ๋ธ๋ก ์ํํ๋ค. ๋ง์ฝ ๋ชจ๋ <c:when>ํ๊ทธ๊ฐ false์ผ ๊ฒฝ์ฐ์ <c:otherwise>๋ฅผ ์คํํจ.
2.1-3) <c:forEach>ํ๊ทธ
- <c:forEach>ํ๊ทธ๋ ์๋ฐ์ for, do-while๋ฑ์ ๋์ ํด์ ์ฌ์ฉํ ์ ์๋ค.
- <c:forEach>ํ๊ทธ๋ ๋ฐฐ์ด, ๋ฆฌ์คํธ, Map์ ์ ์ฅ๋์ด ์๋ ๊ฐ๋ค์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
- <c:forEach>ํ๊ทธ์ items์์ฑ์๋ Map, list, Array๋ฐฐ์ด ๋ฑ์ด ์ฌ ์ ์๋ค.
- <c:forEach>ํ๊ทธ์ var์์ฑ์ผ๋ก ์ด๋ฆ ์ง์ ํด collection์ ์์ฐจ์ ์ผ๋ก ์ถ๋ ฅํด๋.
- <c:forEach>ํ๊ทธ์ begin, end์์ฑ์ ํตํด ์๋ฐ์ for๋ฌธ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ผ์๋ ์๋ค.
โ ์ํ๋ ๋ฒ์๋ง ์คํํ ์ ์๋๋ก ์ง์ !
- <c:forEach>ํ๊ทธ step์์ฑ์ ์ฌ์ฉํด ์ฆ๊ฐ๊ฐ ์ง์ .
< <c:forEach> ํ๊ทธ์ ์ค๋ช ์์ฝ >
- <c:forEach> ๋ฐฐ์ด์ฌ์ฉ
- <c:forEach> List ์ฌ์ฉ
- <c:forEach> Map์ฌ์ฉ
2.2 ๋ณ์ ์ง์
2.2-1) <c:set>ํ๊ทธ
- <c:set>ํ๊ทธ๋ EL ๋ณ์์ ๊ฐ์ด๋, EL ๋ณ์์ ํ๋กํผํฐ ๊ฐ์ ์ง์ ํ ๋ ์ฌ์ฉ.
- <c:set>ํ๊ทธ์ var ์์ฑ : ๊ฐ์ ์ ์ฅํ EL ๋ณ์์ ์ด๋ฆ์ ์ง์
- <c:set>ํ๊ทธ์ value์์ฑ: ๋ณ์์ ๊ฐ์ ์ง์ . ํํ์, EL, ์ ์ ์ธ ํ ์คํธ๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ์ง์ .
- <c:set>ํ๊ทธ์ scope์์ฑ: ๋ณ์๋ฅผ ์ ์ฅํ ์์ญ์ ์ง์ ํ๋ค. ๊ฐ์(page, request, session, application)์ค ํ๋๊ฐ ์ด. ์ง์ ํ์ง ์๋๋ค๋ฉด page๊ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด.
2.3 URL์ฒ๋ฆฌ
2.3-1) <c:url>ํ๊ทธ
- <c:url>ํ๊ทธ๋ URL์ ์์ฑํด์ฃผ๋ ๊ธฐ๋ฅ ์ ๊ณต.
- <c:url>ํ๊ทธ์ var์์ฑ, scope์์ฑ์ ์๋ต ๊ฐ๋ฅ.
- <c:url>ํ๊ทธ์ var์์ฑ์ ์ง์ ํ๋ฉด ํด๋น ๋ณ์์ ์์ฑํ URL ์ง์ .
- <c:url>ํ๊ทธ ๋ด <c:param>ํ๊ทธ๋ฅผ ์ด์ฉํด ํ๋ผ๋ฏธํฐ๋ฅผ URL์ ์ถ๊ฐํ ์ ์์.
- <c:url>ํ๊ทธ์ href์์ฑ์ URL๊ฒฝ๋ก ์ง์ .
- url - ์ ๋URL : root ๊ฒฝ๋ก (http:/)๋ฅผ ํฌํจํ ์์ ํ URL
- ์๋ URL : ์ฌ๋์('/')๋ก ์์ํ์ง ์์
2.4 ๊ธฐํํ๊ทธ
2.4-1) <c:out>ํ๊ทธ
- JSP์ ๋ฐ์ดํฐ ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ ํ๊ทธ
-<c:out>ํ๊ทธ์ value์์ฑ : ์ถ๋ ฅํ ๊ฐ์ ๋ํ๋.
-<c:out>ํ๊ทธ default์์ฑ : value์์ฑ์์ ์ง์ ํ ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋ ์ฌ์ฉ๋ ๊ฐ ์ง์
'FOR SW ENGINEER๐ฉโ๐ป > JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JSP - ๋ถํธ์คํธ๋ฉ(BootStrap) ์ฌ์ฉ (0) | 2021.12.09 |
---|---|
JSP - ์ปค์คํ ํ๊ทธ(Custom Tag) (1) | 2021.12.01 |
JSP - ํํ์ธ์ด(EL, Expression Language) (0) | 2021.11.23 |
JSP - ์๋ฐ๋น(JavaBeans) (0) | 2021.11.23 |
JSP - ๊ธฐ๋ณธ๊ฐ์ฒด(Page, Request, Session, Application) ๋น๊ต (0) | 2021.11.23 |