Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP c:choose 태그 사용법 – 조건 분기 처리 완벽 가이드

<c:choose> 태그는 Java의 switch 문과 유사한 방식으로 작동하며, 여러 조건 중 하나를 선택해 실행할 수 있도록 도와주는 JSTL 코어 태그입니다. switch 문에서 각 조건을 case 문으로 작성하듯이, <c:choose> 태그 안에서는 <c:when> 태그를 사용해 조건을 정의합니다. 또한 switch 문의 default 절처럼, 어떤 조건에도 해당하지 않을 경우 실행되는 기본 처리는 <c:otherwise> 태그로 지정할 수 있습니다.

태그별 속성 정리

  • <c:choose> 태그는 별도의 속성을 가지지 않습니다.

  • <c:when> 태그는 아래 표와 같이 한 개의 속성을 가집니다.

  • <c:otherwise> 태그 역시 별도의 속성을 가지지 않습니다.

c:when 태그의 속성

속성 설명 필수 여부 기본값
test 평가할 조건식(EL 표현식) 없음

사용 시 주의 사항

  • <c:when><c:otherwise>는 반드시 <c:choose> 태그 내부에 위치해야 합니다.

  • <c:when>은 여러 개 사용할 수 있으며, 조건이 참인 첫 번째 블록만 실행되고 이후 블록은 건너뜁니다.

  • <c:otherwise>는 항상 <c:choose> 내에서 마지막에 위치해야 하며, 생략할 수도 있습니다.

  • JSTL 코어 태그를 사용하려면 페이지 상단에 taglib 지시문으로 태그 라이브러리를 선언해야 합니다.

실전 예제

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
   <head>
      <title>&lt;c:choose&gt; 태그 예제</title>
   </head>
   <body>
      <c:set var = "salary" scope = "session" value = "${2000*2}"/>
      <p>당신의 급여는 : <c:out value = "${salary}"/></p>
      <c:choose>
         <c:when test = "${salary <= 0}">
            생계를 유지하기에는 급여가 너무 낮습니다.
         </c:when>
         <c:when test = "${salary > 1000}">
            급여가 아주 좋습니다.
         </c:when>
         <c:otherwise>
            특별히 남길 말씀이 없습니다...
         </c:otherwise>
      </c:choose>
   </body>
</html>

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

당신의 급여는 : 4000
급여가 아주 좋습니다.

이 예제에서 세션 스코프에 저장된 salary 값은 2000 × 2로 계산되어 4000이 됩니다. 첫 번째 <c:when>의 조건(salary ≤ 0)은 거짓이므로 건너뛰고, 두 번째 조건(salary > 1000)이 참이므로 해당 블록의 메시지만 출력됩니다. 만약 어떤 조건도 만족하지 않았다면 <c:otherwise> 블록이 실행되었을 것입니다.