** ๐ EL + setAttribute ์ค๋ฌด ํ๋ฆ ์ฐ๋ + ๋ฌธ์ ํ์ด **
โ ๋ชฉ์ฐจ
- setAttribute์ EL์ ์ฐ๊ฒฐ ๊ตฌ์กฐ
- EL์ด ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ํ๋ฆ (์ค์ฝํ ํ์)
- ์ค๋ฌด ํ๋ฆ ์์ : Servlet โ JSP โ EL
- ์ค๋ฌด ์ค์ต ๋ฌธ์
- ๊ธฐ์ ๋ฉด์ ํต์ฌ ์ง๋ฌธ ์ ๋ฆฌ
- ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
1๏ธโฃ setAttribute์ EL์ ์ฐ๊ฒฐ ๊ตฌ์กฐ
๐ EL์ Servlet์ด๋ JSP์์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ๋ ๋๊ตฌ์ ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฐ๋ ํ๋ฆ์:
Servlet์์
request.setAttribute()
โ JSP์์${}
๋ก ์ถ๋ ฅ
๐น ๊ตฌ์กฐ ์์:
// [Servlet]
User user = new User("kim", "kim@email.com");
request.setAttribute("user", user);
request.getRequestDispatcher("view.jsp").forward(request, response);
<!-- [view.jsp] -->
<p>์์ด๋: ${user.id}</p>
<p>์ด๋ฉ์ผ: ${user.email}</p>
๐ง ์ด๋, ${user.id}
๋ ๋ด๋ถ์ ์ผ๋ก user.getId()
๋ฅผ ์๋ ํธ์ถํฉ๋๋ค.
2๏ธโฃ EL์ด ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ํ๋ฆ (์ค์ฝํ ํ์ ์์)
๐ EL์ ${user}
๋ฅผ ๋ง๋๋ฉด, ๋ค์ ์์๋๋ก ์ฐพ์ต๋๋ค:
pageScope.user
requestScope.user
sessionScope.user
applicationScope.user
โ ๊ฐ์ฅ ๊ฐ๊น์ด Scope์์ ๋ฐ๊ฒฌ๋ ๊ฐ ํ๋๋ง ์ฌ์ฉํฉ๋๋ค.
3๏ธโฃ ์ค๋ฌด ํ๋ฆ ์์ : Servlet โ JSP โ EL ์ ์ฒด ์ฐ๊ฒฐ
๐ธ Step 1: Servlet โ ๋ฐ์ดํฐ ์ค๋น
// User.java (DTO)
public class User {
private String id;
private String email;
// constructor, getters/setters
}
// UserServlet.java
User user = new User("hong", "hong@gmail.com");
request.setAttribute("user", user);
request.getRequestDispatcher("userInfo.jsp").forward(request, response);
๐ธ Step 2: JSP โ EL๋ก ๋ฐ์ดํฐ ์ถ๋ ฅ
<!-- userInfo.jsp -->
<h2>ํ์ ์ ๋ณด</h2>
<p>์์ด๋: ${user.id}</p>
<p>์ด๋ฉ์ผ: ${user.email}</p>
4๏ธโฃ ์ค๋ฌด ์ค์ต ๋ฌธ์ (์ด๊ธ + ์ค์ )
๐ก ๋ฌธ์ 1. EL๋ก ์ถ๋ ฅ๋์ง ์์ ๊ฒฝ์ฐ ํ์ธํด์ผ ํ ๊ฒ์?
โ ์ฒดํฌ๋ฆฌ์คํธ:
setAttribute()
์์ ๋ณ์๋ช ์คํ๋ ์๋๊ฐ?forward()
๋ก ์ ์ ๋ฌ๋์๋๊ฐ?- EL์์
${user}
โ ์กด์ฌํ์ง ์์ผ๋ฉด ์๋ฌด๊ฒ๋ ์ถ๋ ฅ๋์ง ์์ (์ค๋ฅ๋ ์ ๋ธ) - ๊ฐ์ฒด์
getter
๋ฉ์๋๋ ์กด์ฌํ๋๊ฐ?
๐ข ๋ฌธ์ 2. ์๋ Servlet ์ฝ๋ ์คํ ํ, JSP์์ ์ด๋ฉ์ผ์ ์ถ๋ ฅํด๋ณด์ธ์.
User user = new User("lee", "lee@email.com");
request.setAttribute("member", user);
๐ธ ํด๋ต:
<p>์ด๋ฉ์ผ: ${member.email}</p>
5๏ธโฃ ๊ธฐ์ ๋ฉด์ ํต์ฌ ์ง๋ฌธ ์ ๋ฆฌ
์ง๋ฌธ | ์์ ๋ต๋ณ ์์ฝ |
---|---|
โ EL์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋์ ๊ฐ์ ธ์ค๋์? | EL์ JSP์์ ${๋ณ์} ๋ฅผ ์ฌ์ฉํ๋ฉด page โ request โ session โ application ์์ผ๋ก ๊ฐ์ ์ฐพ์ ์ถ๋ ฅํฉ๋๋ค. |
โ EL์ด ๊ฐ์ ์ถ๋ ฅํ๋ ค๋ฉด ์ด๋ค ์กฐ๊ฑด์ด ํ์ํ๊ฐ์? | EL์ setAttribute() ๋ก ์ ์ฅ๋ ๊ฐ์ฒด์ฌ์ผ ํ๋ฉฐ, getter ๋ฉ์๋๋ฅผ ํตํด ๋ด๋ถ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ด์ผ ํฉ๋๋ค. |
โ EL์์ ${user.id} ๋ ์ค์ ๋ก ์ด๋ค ๋์์ ํ๋์? |
user.getId() ๋ฅผ ๋ด๋ถ์ ์ผ๋ก ํธ์ถํด ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. |
โ EL์ด ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์ ๋๋? | ํด๋น ์ด๋ฆ์ ๊ฐ์ฒด๊ฐ ์ด๋ค ์ค์ฝํ์๋ ์กด์ฌํ์ง ์์ผ๋ฉด ์ถ๋ ฅํ์ง ์์ต๋๋ค. ์ค๋ฅ๋ ๋์ง ์์ต๋๋ค. |
โ setAttribute ์์ด EL๋ง ์ฌ์ฉํ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ์๊ธฐ๋์? | ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด EL์ ๋น ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค. null ๊ฒ์ฌ๋ฅผ ์ํ <c:if test> ์ ํจ๊ป ์ฐ๋ ๊ฒ์ด ์์ ํฉ๋๋ค. |
6๏ธโฃ ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
๐ EL + setAttribute๋ JSP MVC ๊ตฌ์กฐ์์ View์ Controller๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ฌ ํต๋ก์ ๋๋ค.
โ EL์ ์ค์ง ์ถ๋ ฅ ์ ์ฉ์ด๋ฉฐ,
โ
Servlet โ setAttribute()
๋ก ์ ์ฅ๋ ๊ฐ์ฒด๋งโ
${}
๋ฌธ๋ฒ์ผ๋ก ๊ฐ์ ธ์ ์ถ๋ ฅํฉ๋๋ค.
๐ ๏ธ ๋ณด๋์ค ํ: JSP ํ์ด์ง์์ null
๋ฐฉ์งํ๊ธฐ
<c:choose>
<c:when test="${empty user}">
<p>ํ์ ์ ๋ณด๊ฐ ์์ต๋๋ค.</p>
</c:when>
<c:otherwise>
<p>์์ด๋: ${user.id}</p>
</c:otherwise>
</c:choose>