JSTL <c:choose>、<c:when>和<c:otherwise>标签类似于 Java 中的 switch-case 和 default 语句,可以从多个语句块中选择其中的一个执行。
语法
JSP <c:choose>、<c:when>和<c:otherwise>标签语法如下:
<c:choose>
<c:when test="表达式1">
// 表达式1为true时执行的代码块
</c:when>
<c:when test="表达式2">
// 表达式2为true时执行的代码块
</c:when>
<c:otherwise>
// 表达式都为false时执行的代码块
</c:otherwise>
</c:choose>
其中:
- <c:choose> 是父标签,相当于 Java Switch;
- <c:when> 和 <c:otherwise> 是 <c:choose> 的子标签,可以有 0 个或多个。<c:when> 相当于 Java case,<c:otherwise> 相当于 Java default;
- <c:when> 标签必须位于 <c:otherwise> 标签之前,<c:when> 中的判断语句都为假时,才会执行 <c:otherwise> 中的内容。
注意:当多个 <c:when> 标签中的判断语句为 true 时,只会执行第一个判断语句为 true 的<c:when> 中的内容。
示例
下面为 <c:choose>、<c:when>和<c:otherwise>标签的简单实例。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title>runoops自学(www.runoops.com)</title>
</head>
<body>
<body>
<c:set var="num1" value="${222}" />
<c:set var="num2" value="${12}" />
<c:set var="num3" value="${10}" />
<c:choose>
<c:when test="${num1 < num2}">
num1小于num2
</c:when>
<c:when test="${num1 <= num3}">
num1小于等于num3
</c:when>
<c:otherwise>
num1是最大的数字
</c:otherwise>
</c:choose>
</body>
</html>
页面输出如下:
num1是最大的数字