JSTL의 <x:choose> 태그는 자바(Java)의 switch 문과 동일한 방식으로 동작합니다. 이 태그를 사용하면 여러 가지 대안 중 하나를 선택하여 실행할 수 있습니다. switch 문에서 case 문으로 각 조건을 나열하듯이, <x:choose> 태그 안에는 여러 개의 <x:when> 태그를 배치합니다. 또한 switch 문에 기본 동작을 지정하는 default 절이 있는 것처럼, <x:choose> 태그에서는 <x:otherwise> 태그가 default 절 역할을 수행합니다.
속성(Attribute)
<x:choose> 태그는 어떤 속성도 가지지 않습니다.
<x:when> 태그는 아래 표에 정리된 하나의 속성을 가집니다.
<x:otherwise> 태그는 어떤 속성도 가지지 않습니다.
<x:when> 태그가 가지는 속성은 다음과 같습니다.
| 속성 | 설명 | 필수 여부 | 기본값 |
|---|---|---|---|
| select | 평가할 조건식(XPath 표현) | 예 | 없음 |
사용 예제
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL x:choose Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:set var = "xmltext">
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
<book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
</c:set>
<x:parse xml = "${xmltext}" var = "output"/>
<x:choose>
<x:when select = "$output//book/author = 'ZARA'">
Book is written by ZARA
</x:when>
<x:when select = "$output//book/author = 'NUHA'">
Book is written by NUHA
</x:when>
<x:otherwise>
Unknown author.
</x:otherwise>
</x:choose>
</body>
</html>위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Books Info: Book is written by ZARA