** ๐EL ์ฐ์ฐ์ ์ข ๋ฅ ๋ฐ ์ค์ ์ฌ์ฉ๋ฒ (์ฐ์ , ๋น๊ต, ๋ ผ๋ฆฌ, empty ๋ฑ) **
โ ๋ชฉ์ฐจ
- EL์์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์
- ์ฐ์ ์ฐ์ฐ์
- ๋น๊ต ์ฐ์ฐ์
- ๋ ผ๋ฆฌ ์ฐ์ฐ์
- ์กฐ๊ฑด ์ฐ์ฐ์ (์ผํญ ์ฐ์ฐ์)
empty
์ฐ์ฐ์- ์ค์ ํ์ฉ ์์ ๋ชจ์
- ๊ธฐ์ ๋ฉด์ ๋๋น ํต์ฌ ์์ฝ
- ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
1๏ธโฃ EL์์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์ ์ด์ ๋ฆฌ
๋ถ๋ฅ | ์ฐ์ฐ์ | ์ค๋ช |
---|---|---|
์ฐ์ | + , - , * , / , % |
๊ธฐ๋ณธ ์ฐ์ ๊ณ์ฐ |
๋น๊ต | == , != , < , > , <= , >= , eq , ne , lt , gt , le , ge |
๋น๊ต ์ฐ์ฐ (๋ฌธ์ํ, ์ซ์ํ ์๋ ํ๋ณํ) |
๋ ผ๋ฆฌ | && , ` |
ย |
์กฐ๊ฑด | condition ? A : B |
์ผํญ ์ฐ์ฐ์ |
ํน์ | empty |
๊ฐ์ด null์ด๊ฑฐ๋ ๋น์ด์๋์ง ํ์ธ |
๐ ๐ ==
์ eq
, !=
๊ณผ ne
๋ ๊ฐ์ ์๋ฏธ์
๋๋ค. eq
, ne
๋ XML ํ๊ฒฝ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ฉฐ, EL์์๋ ๋ชจ๋ ์ง์๋ฉ๋๋ค.
2๏ธโฃ ์ฐ์ ์ฐ์ฐ์
<% request.setAttribute("x", 10); %>
<% request.setAttribute("y", 3); %>
<p>๋ง์
: ${x + y}</p> <!-- 13 -->
<p>๊ณฑ์
: ${x * y}</p> <!-- 30 -->
<p>๋๋์
: ${x / y}</p> <!-- 3 -->
<p>๋๋จธ์ง: ${x % y}</p> <!-- 1 -->
3๏ธโฃ ๋น๊ต ์ฐ์ฐ์
์ฐ์ฐ์ | ์๋ฏธ | ์์ |
---|---|---|
== , eq |
๊ฐ๋ค | ${x == y} , ${x eq y} |
!= , ne |
๊ฐ์ง ์๋ค | ${x != y} , ${x ne y} |
< , lt |
์๋ค | ${x < y} , ${x lt y} |
> , gt |
ํฌ๋ค | ${x > y} , ${x gt y} |
<= , le |
์๊ฑฐ๋ ๊ฐ๋ค | ${x <= y} , ${x le y} |
>= , ge |
ํฌ๊ฑฐ๋ ๊ฐ๋ค | ${x >= y} , ${x ge y} |
๐ก eq
, ne
, lt
, gt
, le
, ge
๋ XML ์์ฑ ์์์ ๊ธฐํธ ๋์ ์ฌ์ฉํ๋ฉด ์์ ์ ์
๋๋ค.
4๏ธโฃ ๋ ผ๋ฆฌ ์ฐ์ฐ์
<% request.setAttribute("isAdmin", true); %>
<% request.setAttribute("isActive", false); %>
<p>${isAdmin && isActive}</p> <!-- false -->
<p>${isAdmin || isActive}</p> <!-- true -->
<p>${!isActive}</p> <!-- true -->
โ
ํ
์คํธ ๋ฐฉ์ (and
, or
, not
)๋ ๋์ผํ๊ฒ ์๋:
<p>${isAdmin and isActive}</p>
5๏ธโฃ ์กฐ๊ฑด ์ฐ์ฐ์ (์ผํญ ์ฐ์ฐ์)
<% request.setAttribute("score", 80); %>
<p>ํฉ๊ฒฉ ์ฌ๋ถ: ${score >= 60 ? "ํฉ๊ฒฉ" : "๋ถํฉ๊ฒฉ"}</p>
๐ง ์ฃผ์: JSP ํ์ด์ง ๋ฒ์ ์ด ๋ฎ์ผ๋ฉด ์ผํญ ์ฐ์ฐ์๊ฐ ์๋ํ์ง ์์ ์ ์์ผ๋ 2.0 ์ด์
ํ์ธ ํ์.
6๏ธโฃ empty
์ฐ์ฐ์
โ null, ๋น ๋ฌธ์์ด(โโ), ๋น ๋ฐฐ์ด, ๋น ์ปฌ๋ ์ ๋ฑ์ ์ฒดํฌํ ๋ ์ฌ์ฉํฉ๋๋ค.
<% request.setAttribute("userId", ""); %>
<p>์์ด๋ ์
๋ ฅ๋จ? ${empty userId ? "โ ์์" : "โ
์์"}</p>
ํํ | ์ค๋ช |
---|---|
empty param.name |
ํ๋ผ๋ฏธํฐ name์ด ์๊ฑฐ๋ ๋น ๊ฐ์ธ์ง ํ์ธ |
empty list |
๋ฆฌ์คํธ๊ฐ null ๋๋ size=0์ธ์ง ํ์ธ |
7๏ธโฃ ์ค์ ํ์ฉ ์์ ๋ชจ์
๐ธ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๋ก๊ทธ์ธ ๋ถ๊ธฐ
<c:if test="${empty sessionScope.user}">
<p>๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค.</p>
</c:if>
<c:if test="${not empty sessionScope.user}">
<p>ํ์ํฉ๋๋ค, ${sessionScope.user.name}๋!</p>
</c:if>
๐ธ ๋ฐ๋ณต๋ฌธ ๋ด ์ง์/ํ์ ๊ตฌ๋ถ
<c:forEach var="i" begin="1" end="5">
<p>${i}๋ ${i % 2 == 0 ? "์ง์" : "ํ์"}</p>
</c:forEach>
๐ธ ์ฅ๋ฐ๊ตฌ๋ ๋น์๋์ง ์ฒดํฌ
<c:choose>
<c:when test="${empty cart}">
<p>๐ ์ฅ๋ฐ๊ตฌ๋๊ฐ ๋น์ด ์์ต๋๋ค.</p>
</c:when>
<c:otherwise>
<p>๐ ${cart.size()}๊ฐ์ ์ํ์ด ๋ด๊ฒจ ์์ต๋๋ค.</p>
</c:otherwise>
</c:choose>
8๏ธโฃ ๊ธฐ์ ๋ฉด์ ๋๋น ํต์ฌ ์์ฝ
์ง๋ฌธ | ๋ต๋ณ ์์ฝ |
---|---|
โ EL์์ ์ฌ์ฉํ ์ ์๋ ์ฐ์ฐ์๋? | ์ฐ์ , ๋น๊ต, ๋ ผ๋ฆฌ, ์ผํญ, empty ๋ฑ์ด ์์ผ๋ฉฐ ๋๋ถ๋ถ ์๋ฐ์ ์ ์ฌํ์ง๋ง ๋ฌธ๋ฒ์ ๊ฐ๊ฒฐํฉ๋๋ค. |
โ empty์ ์ฉ๋๋? | null ๋๋ ๋น์ด์๋ ๊ฐ์ ๊ฒ์ฌํ ๋ ์ฌ์ฉํ๋ฉฐ, ๋งค์ฐ ์์ฃผ ์ฐ์ ๋๋ค. |
โ eq์ ==์ ์ฐจ์ด์ ์? | ๊ธฐ๋ฅ์ ๊ฐ์ง๋ง eq ๋ XML ์์ฑ์์๋ ์์ ํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ์ฌ JSTL์์ ์ ํธ๋ฉ๋๋ค. |
โ ์ผํญ ์ฐ์ฐ์ ์ฌ์ฉ๋ฒ? | ${์กฐ๊ฑด ? ๊ฐ1 : ๊ฐ2} ํํ์ด๋ฉฐ JSP 2.0 ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅ |
โ EL์์ ์ฐ์ฐ์ ์ค๋ฅ๊ฐ ๋๋ ๊ฒฝ์ฐ๋? | ํํ์์ด null์ผ ๊ฒฝ์ฐ ์ฐ์ ์ฐ์ฐ ์ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ โ JSTL <c:if> ์ ๋ณํ ์ฌ์ฉ ๊ถ์ฅ |
9๏ธโฃ ์์ฝ ๋ฐ ๋ง๋ฌด๋ฆฌ
EL์ ์๋ฐ์์ ์ฐ๋ ์ฐ์ฐ์๋ค์ ๊ฐ๊ฒฐํ๊ณ ํํ ์ค์ฌ์ผ๋ก ์ธ ์ ์๋๋ก ์ง์ํด์ค๋๋ค.
empty
,==
,&&
, ์ผํญ ์ฐ์ฐ์ ๋ฑ์ ์ค๋ฌด์ ๊ธฐ์ ๋ฉด์ ๋ชจ๋์์ ๋งค์ฐ ์์ฃผ ๋ฑ์ฅํ๋ ํต์ฌ ์์์ ๋๋ค.