JSP/Servlet | JSTL(JSP Standard Tag Library) | 조건문 <c:if>, <c:choose>, <c:when>, <c:otherwise>
JSTL에서의 조건문에 대해서 알아보자.
조건문 <c:if>
JSTL 조건에서는 <c:if> ~ </c:if>
로 이루워 있다. 주의할 점은 다른 언어와 다르게 else가 없다는 것이다.
속성 설명
항목 | 설명 | 필수 여부 | 기본값 |
---|---|---|---|
test | 평가할 조건 | 필수 | |
var | 조건 결과를 저장할 변수의 이름 | ||
scope | 조건 결과를 저장할 변수의 범위 | page |
예시
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:if> Tag Example</title>
</head>
<body>
<c:set var="aaa" value="1" scope="session"/>
<c:if test="${aaa == 1}">
<p>a는 1입니다.<p>
</c:if>
</body>
</html>
결과 표시
a는 1입니다.
조건문 <c:choose>
, <c:when>
, <c:otherwise>
<c:choose>
는 Java 언어의 switch~ case와 비슷하게 여러 조건중에 하나를 선택한다. <c:choose>
는 switch에 해당되고 <c:when>
는 case에 해당되며, <c:otherwise>
는 default에 해당된다.
속성
<c:choose>
태그는 어떠한 속성도 없다.<c:when>
태그에는 아래에 나열된 하나의 속성이 있다.<c:otherwise>
태그는 어떠한 속성도 없다.
항목 | 설명 | 필수 여부 | 기본값 |
---|---|---|---|
test | 평가할 조건 | 필수 |
예시
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:choose> Tag Example</title>
</head>
<body>
<c:set var="a" value="${256}" scope="session"/>
<c:set var="result" value="${a % 3}" scope="session"/>
<c:choose>
<c:when test="${result == 1 || salary == 2}">
${a} 는 3의 배수가 아니다.
</c:when>
<c:otherwise>
${a} 는 3의 배수이다.
</c:otherwise>
</c:choose>
</body>
</html>
결과 표시
${a} 는 3의 배수가 아니다.
비교 수식 : eq, ne, empty
조건문을 사용할 때에는 반드시 값과의 비교를 작성하게 되는데, JSTL에서는 eq, ne, empty와 같은 비교수식를 이용할 수 있다.
수식 | 기호 | 설명 |
---|---|---|
eq | == | 비교하는 값이 동일한지 확인할 때 사용한다. |
ne | != | 비교하는 값이 동일하지 않은지 확인할 때 사용한다. |
empty | == null | 비교하는 값이 null 인지 확인할때 사용한다. null이 아닌경우를 표현할때는 !empty 로 표현하면 된다. |
eq (==) 예시
<c:if test="${list eq null}">...</c:if> <!-- null 비교 -->
<c:if test="${int eq 0}">...</c:if> <!-- 숫자 비교 -->
<c:if test="${str eq 'a'}">...</c:if> <!-- 문자열 비교 -->
ne (!=) 예시
<c:if test="${list ne null}">...</c:if> <!-- null 비교 -->
<c:if test="${int ne 0}">...</c:if> <!-- 숫자 비교 -->
<c:if test="${str ne 'a'l}">...</c:if> <!-- 문자열 비교 -->
empty (== null) 예시
<c:if test="${empty list}">...</c:if> <!-- collection 객체가 비어 있을 경우 -->
<c:if test="${!empty list}">...</c:if> <!-- collcetion 객체가 비어 있지 않을 경우 -->
최종 수정 : 2017-12-17