推荐答案
在 JSP 中使用 JSTL 的 <c:choose>、<c:when> 和 <c:otherwise> 标签可以实现类似于 Java 中的 switch-case 或 if-else 逻辑。以下是一个示例:
// www.javascriptcn.com code example
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:choose>
<c:when test="${user.role == 'admin'}">
<p>Welcome, Admin!</p>
</c:when>
<c:when test="${user.role == 'editor'}">
<p>Welcome, Editor!</p>
</c:when>
<c:otherwise>
<p>Welcome, Guest!</p>
</c:otherwise>
</c:choose>本题详细解读
1. <c:choose> 标签
<c:choose> 标签是 JSTL 中的一个条件选择标签,类似于 Java 中的 switch 语句。它本身不包含任何条件判断,而是作为一个容器,用于包裹 <c:when> 和 <c:otherwise> 标签。
2. <c:when> 标签
<c:when> 标签用于定义条件分支,类似于 Java 中的 case 语句。它必须包含一个 test 属性,该属性的值是一个布尔表达式。如果 test 属性的值为 true,则执行 <c:when> 标签体中的内容。
3. <c:otherwise> 标签
<c:otherwise> 标签用于定义默认分支,类似于 Java 中的 default 语句。当所有 <c:when> 标签的条件都不满足时,执行 <c:otherwise> 标签体中的内容。
4. 使用场景
<c:choose>、<c:when> 和 <c:otherwise> 标签通常用于在 JSP 页面中根据不同的条件显示不同的内容。例如,根据用户的角色显示不同的欢迎信息,或者根据不同的状态显示不同的操作按钮。
5. 注意事项
<c:choose>标签必须包含至少一个<c:when>标签。<c:otherwise>标签是可选的,但如果有多个<c:otherwise>标签,只有第一个会生效。<c:when>标签的顺序很重要,JSP 会从上到下依次检查每个<c:when>标签的条件,直到找到第一个为true的条件为止。