** ๐, ๋ฑ ๊ธฐ๋ณธ core ํ๊ทธ ์์ ์ ๋ณต **
โ ๋ชฉ์ฐจ
- JSTL core ํ๊ทธ๋?
<c:out>
- ๊ฐ ์ถ๋ ฅ ํ๊ทธ<c:set>
- ๋ณ์ ์ค์ ํ๊ทธ<c:remove>
- ๋ณ์ ์ ๊ฑฐ ํ๊ทธ<c:catch>
- ์์ธ ์ฒ๋ฆฌ ํ๊ทธ- ์ค๋ฌด ํ์ฉ ์์
- ๊ธฐ์ ๋ฉด์ ๋๋น ์ ๋ฆฌ
- ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
1๏ธโฃ JSTL core ํ๊ทธ๋?
๐ core ํ๊ทธ๋ JSP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ JSTL ํ๊ทธ ๋ชจ์์ผ๋ก,
์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ๋ณ์ ์ ์ธ, ์ถ๋ ฅ ๋ฑ ํต์ฌ์ ์ธ JSP ํํ ๊ธฐ๋ฅ์ ๋ด๋นํฉ๋๋ค.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
์ด ํ ์ค ์ ์ธ์ผ๋ก ๋ชจ๋ core ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
2๏ธโฃ <c:out>
โ ๊ฐ ์ถ๋ ฅ ํ๊ทธ
๐ก ${}์ ๋น์ทํ์ง๋ง, null ๊ฐ์ ์์ ํ๊ฒ ์ฒ๋ฆฌํ๊ฑฐ๋ escape ๊ธฐ๋ฅ์ด ํ์ํ ๋ ์ฌ์ฉํฉ๋๋ค.
โ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
<c:out value="${user.name}" />
โ ๏ธ null ๋๋น ๊ธฐ๋ณธ๊ฐ ์ค์
<c:out value="${user.name}" default="์ด๋ฆ ์์" />
โ HTML ํ๊ทธ ์ถ๋ ฅ ๋ฐฉ์ง (escapeXml)
<c:out value="<b>๊ตต๊ฒ</b>" escapeXml="true" />
<!-- ์ถ๋ ฅ ๊ฒฐ๊ณผ: <b>๊ตต๊ฒ</b> -->
3๏ธโฃ <c:set>
โ ๋ณ์ ์ ์ธ ๋ฐ ๊ฐ ์ ์ฅ
๐ก JSP ๋ด์์ ๋ณ์๋ฅผ ๋ง๋ค๊ฑฐ๋, ๊ธฐ์กด ๋ณ์์ ๊ฐ์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
โ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
<c:set var="score" value="90" />
<p>์ ์: ${score}</p>
โ ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๊ฐ ์ค์
<c:set target="${user}" property="name" value="ํ๊ธธ๋" />
โ ์ค์ฝํ ์ง์ (page, request, session, application)
<c:set var="nickname" value="ํ์ด" scope="session" />
4๏ธโฃ <c:remove>
โ ๋ณ์ ์ ๊ฑฐ ํ๊ทธ
๐ก ์ง์ ํ ๋ณ์๋ช ์ ํ์ฌ ์ค์ฝํ ๋๋ ์ง์ ํ ์ค์ฝํ์์ ์ ๊ฑฐํฉ๋๋ค.
<c:remove var="nickname" />
<c:remove var="nickname" scope="session" />
5๏ธโฃ <c:catch>
โ ์์ธ ์ฒ๋ฆฌ ํ๊ทธ
๐ก JSP์์ ๋ฐ์ํ๋ ์์ธ๋ฅผ ๋ณ์์ ๋ด์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
<c:catch var="error">
<%
int x = 5 / 0; // ์์ธ ๋ฐ์
%>
</c:catch>
<c:if test="${not empty error}">
<p>์์ธ ๋ฐ์: ${error}</p>
</c:if>
6๏ธโฃ ์ค๋ฌด ํ์ฉ ์์
๐ธ ์์ 1: ์ฌ์ฉ์ ์ด๋ฆ ์ถ๋ ฅ (null ๋ฐฉ์ง)
<c:out value="${user.name}" default="์ด๋ฆ ๋ฏธ์ " />
๐ธ ์์ 2: ๋ณ์ ์ค์ ๋ฐ ์ถ๋ ฅ
<c:set var="level" value="Silver" />
<p>ํ์ ๋ฑ๊ธ: ${level}</p>
๐ธ ์์ 3: ์ฌ์ฉ์ ๊ฐ์ฒด์ ์ด๋ฆ ๋ฎ์ด์ฐ๊ธฐ
<c:set target="${user}" property="name" value="ํ๊ธธ๋" />
7๏ธโฃ ๊ธฐ์ ๋ฉด์ ๋๋น ์ ๋ฆฌ
์ง๋ฌธ | ๋ต๋ณ ์์ฝ |
---|---|
โ <c:out> ๊ณผ ${} ์ ์ฐจ์ด๋? |
${} ๋ ๊ฐ๋จํ์ง๋ง null ์ถ๋ ฅ ์ ์๋ฌด๊ฒ๋ ํ์ ์ ๋จ. <c:out> ์ ๊ธฐ๋ณธ๊ฐ ์ค์ ๊ฐ๋ฅํ๊ณ HTML escape๋ ์ ๊ณต |
โ <c:set> ์์ scope ์ง์ ์ด ํ์ํ ์ด์ ๋? |
๋ณ์์ ์์กด ๋ฒ์์ ๊ณต์ ๋ฒ์๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด (sessionScope ๋ฑ) |
โ <c:set> ์ target ์์ฑ์ ์ด๋ค ๊ฒฝ์ฐ ์ฐ๋์? |
๊ฐ์ฒด์ ํ๋ ๊ฐ์ ๋์ ์ผ๋ก ์ค์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉ |
โ <c:catch> ๋ ์ธ์ ํ์ํ๊ฐ์? |
JSP ์ฝ๋ ์ค ์์ธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒฝ์ฐ, ํด๋น ์์ธ๋ฅผ ๋ณ์๋ก ๋ฐ์ ์์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค |
8๏ธโฃ ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
๐ JSTL core ํ๊ทธ๋ JSP์ ๊ธฐ๋ณธ ์ค ๊ธฐ๋ณธ์ ๋๋ค.
<c:out>
,<c:set>
์ EL๊ณผ ๊ฒฐํฉํ์ฌ ํํ๋ ฅ, ์ ์ง๋ณด์์ฑ, ์์ ์ฑ์ ๊ทน๋ํํด ์ค๋๋ค.ํนํ, null ๋ฐฉ์ง ์ฒ๋ฆฌ๋ ๋ณ์ ์ค์ ์ ์ค๋ฌด์์ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋๋ฉฐ,
๊ธฐ์ ๋ฉด์ ์์๋ EL๊ณผ JSTL ์ฐ๊ณ ํ๋ฆ์ผ๋ก ์์ฃผ ์ถ์ ๋ฉ๋๋ค.