[Java Web] 조건문 <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에 해당된다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

속성

  • <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 객체가 비어 있지 않을 경우 -->

[출처] http://www.devkuma.com/books/pages/1184

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
186 [Java Web programming] Spring boot(백엔드)와 React.js(프론트엔드)의 만남 - 프론트엔드 졸리운_곰 2021.08.29 98
185 [java][spring][mybatis] [MyBatis] resultType에 넣을 수 있는 값 정리 졸리운_곰 2021.08.17 303
184 [Java Spring web programming][자바 웹 개발] 10+ Free Open Source Projects Using Spring Boot file 졸리운_곰 2021.08.12 17
183 [java 웹 프로그래밍] Spring boot - Thymeleaf 기본 문법 졸리운_곰 2021.08.11 27
182 [Java 웹 프로그래밍] Tutorial: Thymeleaf + Spring file 졸리운_곰 2021.08.10 15
181 [java][spring boot][gradle] GitHub에서 스프링 부트 & Gradle 프로젝트 Import 하기! file 졸리운_곰 2021.08.05 74
180 [java, spring] Get HTTP POST Body in Spring Boot with @RequestBody 졸리운_곰 2021.06.18 15
179 [Java, jsp, jstl] [JSTL] Functions Tag - fn:contains() 사용하기 졸리운_곰 2021.06.09 38
178 [Java, jsp, jstl] [JSTL] List 갯수(size) 구하기 졸리운_곰 2021.06.02 167
177 [java, jsp, jstl] JSTL에서 변수두개사용하기 : jsp jstl list<> 두개를 졸리운_곰 2021.06.02 149
176 [Java Web, JSTL] 반복문 <c:forEach>, <c:forTokens> 졸리운_곰 2021.05.27 20
» [Java Web] 조건문 <c:if>, <c:choose>, <c:when>, <c:otherwise> 졸리운_곰 2021.05.26 112
174 [java, web dev] forEach를 이용해서 JSTL로 출력하기 졸리운_곰 2021.05.24 70
173 [Java, Web dev] JSTL문법 <c:forEach> c:tag를 이용한 리스트 출력 file 졸리운_곰 2021.05.24 73
172 [Java][Web][Spring] vo 여러개 전달하기. LIST<VO> vo를 list 로 넘기기 / 받기 졸리운_곰 2021.05.20 1865
171 [java web dev, spring, freemaker] freemarker (개념, jsp와 차이, 문법, spring과 연동 설정, 예제) file 졸리운_곰 2021.05.17 33
170 [java web spring] [Spring] web.xml - Filter url 제외시키기 졸리운_곰 2021.05.14 143
169 [Java Web Srping mvc] Spring MVC - home.jsp의 동작원리 file 졸리운_곰 2021.05.14 37
168 [java, web, jsp] Servlet/JSP에서 Ajax 사용 file 졸리운_곰 2021.05.13 438
167 [java][JAVA WEB] [JSP] JSTL 사용 방법 - 주요 태그 문법 정리 . file 졸리운_곰 2021.04.22 13
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED