** ๐Ÿ“Œ, ์กฐ๊ฑด ์ฒ˜๋ฆฌ ์™„์ „ ์ •๋ณต **


โœ… ๋ชฉ์ฐจ

  1. ์กฐ๊ฑด ์ฒ˜๋ฆฌ ํƒœ๊ทธ ์†Œ๊ฐœ
  2. <c:if> ์‚ฌ์šฉ๋ฒ•
  3. <c:choose>, <c:when>, <c:otherwise> ์‚ฌ์šฉ๋ฒ•
  4. EL ์กฐ๊ฑด์‹ ์ž‘์„ฑ ํŒ
  5. ์‹ค๋ฌด ํ™œ์šฉ ์˜ˆ์ œ
  6. ๊ธฐ์ˆ ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ
  7. ์š”์•ฝ ๋ฐ ๋งˆ๋ฌด๋ฆฌ

1๏ธโƒฃ ์กฐ๊ฑด ์ฒ˜๋ฆฌ ํƒœ๊ทธ ์†Œ๊ฐœ

JSTL์˜ ์กฐ๊ฑด๋ฌธ์€ ์ž๋ฐ” if/else, switch๋ฌธ์„ HTML ํƒœ๊ทธ์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

JSP ์กฐ๊ฑด๋ฌธ JSTL ์กฐ๊ฑด๋ฌธ ๋Œ€์ฒด
if <c:if>
if - else if - else <c:choose> + <c:when> + <c:otherwise>

2๏ธโƒฃ <c:if> ์‚ฌ์šฉ๋ฒ•

๋‹จ์ผ ์กฐ๊ฑด์ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค.

โœ… ๊ธฐ๋ณธ ๊ตฌ์กฐ

<c:if test="${์กฐ๊ฑด์‹}">
  <!-- ์กฐ๊ฑด์ด true์ผ ๋•Œ ์‹คํ–‰๋  ์ฝ”๋“œ -->
</c:if>

๐Ÿ”น ์˜ˆ์‹œ 1: ์ ์ˆ˜๊ฐ€ 90์  ์ด์ƒ์ผ ๋•Œ โ€œ์šฐ์ˆ˜โ€

<c:if test="${score >= 90}">
  <p>๐ŸŽ‰ ์šฐ์ˆ˜ ์„ฑ์ ์ž…๋‹ˆ๋‹ค!</p>
</c:if>

๐Ÿ”น ์˜ˆ์‹œ 2: ์„ธ์…˜์— ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ

<c:if test="${not empty sessionScope.user}">
  <p>ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค, ${sessionScope.user.name}๋‹˜!</p>
</c:if>

3๏ธโƒฃ <c:choose> / <c:when> / <c:otherwise> ์‚ฌ์šฉ๋ฒ•

์ž๋ฐ”์˜ if - else if - else ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

โœ… ๊ธฐ๋ณธ ๊ตฌ์กฐ

<c:choose>
  <c:when test="${์กฐ๊ฑด1}">
    <!-- ์กฐ๊ฑด1์ด true -->
  </c:when>
  <c:when test="${์กฐ๊ฑด2}">
    <!-- ์กฐ๊ฑด2๊ฐ€ true -->
  </c:when>
  <c:otherwise>
    <!-- ๋ชจ๋“  ์กฐ๊ฑด์ด false์ผ ๋•Œ -->
  </c:otherwise>
</c:choose>

๐Ÿ”น ์˜ˆ์‹œ: ์‚ฌ์šฉ์ž ๋“ฑ๊ธ‰์— ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ

<c:choose>
  <c:when test="${user.grade == 'admin'}">
    <p>๐Ÿ‘‘ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.</p>
  </c:when>
  <c:when test="${user.grade == 'vip'}">
    <p>๐ŸŒŸ VIP ํšŒ์›์ž…๋‹ˆ๋‹ค.</p>
  </c:when>
  <c:otherwise>
    <p>๐Ÿ‘ค ์ผ๋ฐ˜ ํšŒ์›์ž…๋‹ˆ๋‹ค.</p>
  </c:otherwise>
</c:choose>

4๏ธโƒฃ EL ์กฐ๊ฑด์‹ ์ž‘์„ฑ ํŒ

ํ‘œํ˜„ ์˜๋ฏธ
${a == b} a์™€ b๊ฐ€ ๊ฐ™์œผ๋ฉด true
${a != null} a๊ฐ€ null์ด ์•„๋‹ˆ๋ฉด true
${not empty list} ๋ฆฌ์ŠคํŠธ๊ฐ€ null์ด ์•„๋‹ˆ๊ณ  ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด true
${param.age > 20} age ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 20๋ณด๋‹ค ํฌ๋ฉด true

๐Ÿ’ก ==, !=, >= ๋“ฑ์˜ ์—ฐ์‚ฐ์ž ์™ธ์—๋„ eq, ne, gt, lt ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

(ex: ${grade eq 'admin'})


5๏ธโƒฃ ์‹ค๋ฌด ํ™œ์šฉ ์˜ˆ์ œ

๐Ÿ”ธ ์˜ˆ์ œ 1: ๋กœ๊ทธ์ธ ์—ฌ๋ถ€ ๋ถ„๊ธฐ

<c:if test="${empty sessionScope.user}">
  <p>๐Ÿ” ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.</p>
</c:if>

๐Ÿ”ธ ์˜ˆ์ œ 2: ์ƒํ’ˆ ์ƒํƒœ์— ๋”ฐ๋ฅธ ๋ฐฐ์ง€ ํ‘œ์‹œ

<c:choose>
  <c:when test="${product.status == 'soldout'}">
    <span class="badge">ํ’ˆ์ ˆ</span>
  </c:when>
  <c:when test="${product.status == 'sale'}">
    <span class="badge">ํ• ์ธ์ค‘</span>
  </c:when>
  <c:otherwise>
    <span class="badge">์ •์ƒ</span>
  </c:otherwise>
</c:choose>

6๏ธโƒฃ ๊ธฐ์ˆ ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ

์งˆ๋ฌธ ๋ชจ๋ฒ” ๋‹ต๋ณ€
โ“ <c:if>๊ณผ <c:choose>์˜ ์ฐจ์ด์ ์€? <c:if>๋Š” ๋‹จ์ผ ์กฐ๊ฑด ์ฒ˜๋ฆฌ, <c:choose>๋Š” ์—ฌ๋Ÿฌ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉ
โ“ ์กฐ๊ฑด์‹์€ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•˜๋‚˜์š”? EL ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉฐ ${user.age >= 20} ๊ฐ™์ด ์ž‘์„ฑ
โ“ empty์˜ ์—ญํ• ์€? null ๋˜๋Š” ๋นˆ ๋ฌธ์ž์—ด/๋ฆฌ์ŠคํŠธ์ธ์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ
โ“ ์ž๋ฐ” ์ฝ”๋“œ ๋Œ€์‹  JSTL ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”? ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ, MVC ๋ถ„๋ฆฌ ์œ ์ง€, ๋””์ž์ธ ํ˜‘์—… ํŽธ์˜์„ฑ ๋•Œ๋ฌธ

7๏ธโƒฃ ์š”์•ฝ ๋ฐ ๋งˆ๋ฌด๋ฆฌ

๐Ÿ“Œ JSTL์˜ , ๋Š” JSP์—์„œ ์กฐ๊ฑด ๋ถ„๊ธฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

EL๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๋ฆฟ ์—†์ด๋„ ๋งค์šฐ ์œ ์—ฐํ•œ ํ๋ฆ„ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • <c:if>: ๋‹จ์ผ ์กฐ๊ฑด์ผ ๋•Œ
  • <c:choose>: ๋‹ค์ค‘ ์กฐ๊ฑด ๋ถ„๊ธฐ
  • empty, not, eq ๋“ฑ EL ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์“ฐ๋ฉด ์‹ค๋ฌด์—์„œ๋„ ์œ ์šฉ!