runoops.com

<c:choose><c:when>和<c:otherwise>标签

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是最大的数字