** ๐JSTL + EL ํตํฉ ์ค์ ํ๋ก์ ํธ ์์ **
ํ์ ๋ฆฌ์คํธ ์ถ๋ ฅ + ๋ก๊ทธ์ธ ์ํ์ ๋ฐ๋ฅธ ๋ถ๊ธฐ + ๊ถํ ๋ถ๊ธฐ + ํ์ด์ง๊น์ง ํ ๋ฒ์!
โ ๋ชฉ์ฐจ
- ์์ ์๋๋ฆฌ์ค ์๊ฐ
- ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ฐ์
- ํตํฉ JSP ์์ ์ฝ๋
- ์ฃผ์ ์ฝ๋ ์ค๋ช
- ๊ธฐ์ ๋ฉด์ ๋๋น ์ ๋ฆฌ
- ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
1๏ธโฃ ์์ ์๋๋ฆฌ์ค ์๊ฐ
๐ โํ์ ๋ชฉ๋ก ํ์ด์งโ๋ฅผ ๊ตฌํํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
sessionScope.user
์ ๋ก๊ทธ์ธ ์ ๋ณด๊ฐ ๋ค์ด ์์userList
๋ ํ์ ์ ๋ณด ๋ฆฌ์คํธ (User
๊ฐ์ฒด ๋ฐฐ์ด)- ๋ก๊ทธ์ธํ ์ฌ๋์ด ๊ด๋ฆฌ์์ผ ๊ฒฝ์ฐ, ์ญ์ ๋ฒํผ ์ถ๋ ฅ
- ํ์ ์์ ๋ฐ๋ผ ํ์ด์ง ๋ฒํธ ์ถ๋ ฅ
2๏ธโฃ ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ฐ์
/memberList.jsp โ ๋ฉ์ธ JSP
/UserServlet.java โ userList, ๋ก๊ทธ์ธ์ ๋ณด setAttribute
/userList (ArrayList<User>) โ requestScope์ ์ ์ฅ
sessionScope.user โ ํ์ฌ ๋ก๊ทธ์ธ ์ ์ ๊ฐ์ฒด
3๏ธโฃ ํตํฉ JSP ์์ ์ฝ๋
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h2>๐ฅ ํ์ ๋ชฉ๋ก</h2>
<!-- ๋ก๊ทธ์ธ ์ฌ๋ถ์ ๋ฐ๋ผ ์๋จ ๋ฌธ๊ตฌ ํ์ -->
<c:choose>
<c:when test="${not empty sessionScope.user}">
<p>โ
${sessionScope.user.name}๋, ํ์ํฉ๋๋ค!</p>
</c:when>
<c:otherwise>
<p>๐ ๋ก๊ทธ์ธ ํ ์ด์ฉํด์ฃผ์ธ์.</p>
</c:otherwise>
</c:choose>
<!-- ํ์ ํ
์ด๋ธ -->
<table border="1">
<tr>
<th>No</th>
<th>์์ด๋</th>
<th>์ด๋ฆ</th>
<th>๊ถํ</th>
<th>์ญ์ </th>
</tr>
<c:forEach var="member" items="${userList}" varStatus="vs">
<tr>
<td>${vs.count}</td>
<td>${member.id}</td>
<td>${member.name}</td>
<td>
<c:choose>
<c:when test="${member.role eq 'admin'}">๐ ๊ด๋ฆฌ์</c:when>
<c:otherwise>๐ค ์ผ๋ฐ</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${sessionScope.user.role eq 'admin'}">
<a href="deleteUser?id=${member.id}">๐ ์ญ์ </a>
</c:if>
</td>
</tr>
</c:forEach>
</table>
<!-- ํ์ด์ง ๋ฒํธ ์ถ๋ ฅ -->
<p>
ํ์ด์ง:
<c:forEach var="i" begin="1" end="${totalPages}">
<c:choose>
<c:when test="${i == currentPage}">
<strong>[${i}]</strong>
</c:when>
<c:otherwise>
<a href="memberList.jsp?page=${i}">${i}</a>
</c:otherwise>
</c:choose>
</c:forEach>
</p>
4๏ธโฃ ์ฃผ์ ์ฝ๋ ์ค๋ช
๊ตฌ์ญ | ์ค๋ช |
---|---|
<c:choose> ๋ก๊ทธ์ธ ์ฌ๋ถ |
๋ก๊ทธ์ธ ์ํ์ ๋ฐ๋ผ ์ธ์ฟ๋ง ๋ค๋ฅด๊ฒ ์ถ๋ ฅ |
<c:forEach> ํ์ ๋ฐ๋ณต ์ถ๋ ฅ |
userList์ ํ์๋ค์ ๋ฐ๋ณต |
<c:if> ๊ด๋ฆฌ์๋ง ์ญ์ ๋ฒํผ ๋
ธ์ถ |
session์ ์ฌ์ฉ์ ๊ถํ ์ฒดํฌ |
<c:choose> ์ญํ ๋ณ ์ถ๋ ฅ |
๊ด๋ฆฌ์/์ผ๋ฐ ์ฌ์ฉ์ ์ญํ ๊ตฌ๋ถ ์ถ๋ ฅ |
ํ์ด์ง | ํ์ฌ ํ์ด์ง๋ ๊ฐ์กฐ, ๋๋จธ์ง๋ ๋งํฌ ์ฒ๋ฆฌ |
5๏ธโฃ ๊ธฐ์ ๋ฉด์ ๋๋น ์์ฝ
์ง๋ฌธ | ์์ ๋ต๋ณ |
---|---|
โ EL๊ณผ JSTL์ ์ด๋ป๊ฒ ๊ฒฐํฉํด์ ์ฌ์ฉํ๋์? | EL์ ${} ๋ก ๊ฐ์ ํํ, JSTL์ ํ๋ฆ ์ ์ด๋ฅผ ํ๊ทธ๋ก ์ฒ๋ฆฌํ์ฌ JSP๋ฅผ ํํ ์ ์ฉ์ผ๋ก ๋ง๋ญ๋๋ค. |
โ ์ค๋ฌด์์ ์กฐ๊ฑด + ๋ฐ๋ณต์ ์กฐํฉํด์ผ ํ๋ ์ด์ ๋? | ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ๊ฐ ํญ๋ชฉ๋ง๋ค ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ํ์๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. (์: ๊ถํ ํ์, ์ญ์ ๋ฒํผ ๋ฑ) |
โ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์์ ์๋ ์ฌ์ฉ์๋ฅผ JSP์์ ์ด๋ป๊ฒ ๋ถ๋ฆฌ ์ถ๋ ฅํ๋์? | <c:if test="${not empty sessionScope.user}"> ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ์
์ ๋ณด๋ฅผ ๊ฒ์ฌํฉ๋๋ค. |
โ ๊ด๋ฆฌ์๋ง ๋ฒํผ์ ๋ณด์ด๊ฒ ํ๋ ค๋ฉด? | <c:if test="${sessionScope.user.role eq 'admin'}"> ๋ก ๊ถํ ์ฒดํฌํด์ ์กฐ๊ฑด ๋ถ๊ธฐํฉ๋๋ค. |
โ EL๋ก ์ฌ์ฉ์ role์ด๋ null ์ฒดํฌ ์ ์ฃผ์์ ์? | null์ด๋ฉด ์๋ฌด๊ฒ๋ ์ถ๋ ฅ๋์ง ์๊ธฐ ๋๋ฌธ์ JSTL <c:if> ์ ์กฐํฉํด์ ์ฒ๋ฆฌํ๋ ๊ฒ ์์ ํฉ๋๋ค. |
6๏ธโฃ ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
๐ JSTL + EL์ ๊ฒฐํฉํ๋ฉด ์คํฌ๋ฆฝํธ ์ฝ๋ ์์ด๋ ๋ณต์กํ ์กฐ๊ฑด ๋ถ๊ธฐ, ๋ฐ๋ณต ์ถ๋ ฅ, ํ์ด์ง ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ค๋ฌด์์๋ MVC ๊ตฌ์กฐ + JSTL + EL ์กฐํฉ์ด JSP View ๊ฐ๋ฐ์ ํ์ค์ ๋๋ค.