JSP

JSP - JSTL 조건문 swich 사용하기

jaycheol 2025. 2. 11. 22:44
반응형

1. 코드 설명

(1) JSTL 설정

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • <%@ taglib>: JSP에서 JSTL 라이브러리를 사용하려면 이 설정이 필요합니다. c는 JSTL의 코어 태그 라이브러리를 참조하는 접두어입니다.
  • uri="http://java.sun.com/jsp/jstl/core": 이 URI는 JSTL의 코어 태그 라이브러리를 참조하는 것입니다. 이를 통해 c 접두어를 사용하여 JSTL 태그들을 사용할 수 있습니다.

 

(2) 변수 설정

<c:set var="cnt" value="80"/>
  • <c:set>: cnt라는 변수를 80으로 설정하는 태그입니다. cnt는 조건문을 처리하는 데 사용될 값입니다.

 

(3) c:choose - 조건 분기

<c:choose>
    <c:when test="${cnt % 2 == 0}">
        짝수입니다.
    </c:when>
    <c:when test="${cnt$2 != 0}">
        홀수입니다.
    </c:when>
    <c:otherwise>
        일치하는 when 절이 없는 경우에 실행한다.
    </c:otherwise>
</c:choose>
  • <c:choose>: 여러 조건을 처리할 수 있는 조건문입니다. 이 태그 내에서 <c:when><c:otherwise> 태그를 사용하여 조건에 따라 다른 동작을 실행합니다.
    • <c:when>: 조건이 참일 때 실행할 내용을 작성하는 태그입니다.
    • <c:otherwise>: 위의 조건이 모두 참이 아닐 경우 실행될 내용을 작성하는 태그입니다.

 

(4) 조건 1 - 짝수 판단

<c:when test="${cnt % 2 == 0}">
    짝수입니다.
</c:when>
  • ${cnt % 2 == 0}: cnt가 2로 나누어 떨어지는지 확인합니다. 나누어 떨어지면 짝수입니다.

 

(5) 조건 2 - 홀수 판단 (문법 오류)

<c:when test="${cnt$2 != 0}">
    홀수입니다.
</c:when>
  • 오류: cnt$2 != 0는 잘못된 구문입니다. cnt % 2 != 0으로 수정해야 합니다. 이는 cnt가 2로 나누어 떨어지지 않으면 홀수임을 확인하는 조건입니다.

 

(6) 조건이 일치하지 않으면 실행될 내용

<c:otherwise>
    일치하는 when 절이 없는 경우에 실행한다.
</c:otherwise>
  • <c:otherwise>: 만약 cnt % 2 == 0 또는 cnt % 2 != 0 조건이 모두 참이 아니라면 이 부분이 실행됩니다. 하지만 이 예제에서는 모든 숫자가 짝수나 홀수이기 때문에 사실상 이 부분은 실행되지 않습니다.

 

2. 수정된 전체 코드

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="cnt" value="80"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:choose>
    <c:when test="${cnt % 2 == 0}">
        짝수입니다.
    </c:when>
    <c:when test="${cnt % 2 != 0}">
        홀수입니다.
    </c:when>
    <c:otherwise>
        일치하는 when 절이 없는 경우에 실행된다.
    </c:otherwise>
</c:choose>
</body>
</html>

3. 코드 설명 (수정된 부분 포함)

  • <c:choose>: if-else 구조와 유사한 역할을 하는 태그입니다. 여러 조건 중 첫 번째로 참인 조건에 해당하는 블록이 실행됩니다.
  • <c:when>: 각 조건을 검사하는 부분으로, 조건이 참이면 그에 해당하는 내용을 실행합니다.
    • 첫 번째 <c:when test="${cnt % 2 == 0}">: cnt 값이 짝수일 경우 실행됩니다.
    • 두 번째 <c:when test="${cnt % 2 != 0}">: cnt 값이 홀수일 경우 실행됩니다.
  • <c:otherwise>: 만약 모든 <c:when> 조건이 거짓이면 실행됩니다. 이 예제에서는 cnt 값이 짝수나 홀수여야 하므로 실제로 실행되지 않지만, 조건에 맞지 않는 경우 처리하려면 이 태그를 사용할 수 있습니다.

4. JSTL choose, when, otherwise 태그 사용법

  • <c:choose>: 여러 조건문을 처리하는 데 유용합니다. if-else if-else 구문을 대체할 수 있습니다.
  • <c:when>: 조건이 참일 때 실행될 부분을 정의합니다. 여러 개의 <c:when>을 사용할 수 있습니다.
  • <c:otherwise>: when 조건들이 모두 거짓일 경우 실행됩니다. 필수는 아니며, 조건이 없을 때 실행할 기본 내용을 정의할 때 사용됩니다.
반응형