[JSTL] jstl에서 if, else문을 사용하는 방법(c:if, c:choose)

2020. 2. 29. 02:023_개발/3_5_JSP

개발 언어의 가장 기본인 if, else를 사용하는 방법이다.

해당 코드도 c태그이므로 jsp 파일 맨 위에 c태그에 대한 선언이 필요하다.

 

1. c태그 선언

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>

 

2. jstl의 if 문법

<!-- 문법 -->
<c:if test="${조건}"> <!-- if 조건 선언 -->
     해당 조건에 맞는경우 실행
</c:if> <!-- 해당 if문 종료 선언 -->

<!-- 사용예시 -->
<c:if test="${empty list}">
    현재 해당 게시판은 리스트가 존재하지 않습니다.
</c:if>

위와 같은 문법을 사용한다.

위의 문법은 java로 비교하면 아래와 동일하다.

if(list.isEmpty()) {
	System.out.println("현재 해당 게시판은 리스트가 존재하지 않습니다.");
}

 

3. jstl의 else 문법

jstl에서는 if, esle를 사용하려면 전체적으로 묶어주는 작업이 필요하다.

<!-- 문법 -->
<c:choose>  <!-- if, else의 시작임을 정의 -->
	<c:when test="${조건}"> <!-- if와 동일 -->
		해당 조건에 맞는경우 실행
	</c:when> <!-- if 종료 -->
	<c:otherwise> <!-- else와 동일 -->
		그 외의 경우 실행
	</c:otherwise> <!-- else 종료 -->
</c:choose>  <!-- if, else의 종료임을 정의-->


<!-- 사용에시 -->
<c:choose> 
	<c:when test="${count < 10}">
		count가 10보다 작은 경우
	</c:when> 
	<c:when test="${count > 10  and count < 20 }">
		count가 10보다 크고 20보다 작은 경우
	</c:when> 
	<c:otherwise>
		count가 20보다 큰 경우
	</c:otherwise> 
</c:choose> 

위의 문법을 자바로 변경하면 아래와 동일하다.

if(count < 10) {
	System.out.println("count가 10보다 작은 경우");
} else if (count > 10 && count < 20) {
	System.out.println("count가 10보다 크고 20보다 작은 경우");
} else {
	System.out.println("count가 20보다 큰 경우");
}

 

이게 jstl에서 가장 기본적인 if, else이다.

배워두면 두고두고 정말 두고두고 쓰일 것이다.