36

我注意到<c:if ...>在 JSP 代码的一个地方和另一个地方的用法<c:when ...>。他们做的事情在我看来是一样的。这两个命令只是别名吗?

4

2 回答 2

54

<c:if是一个简单的 if 子句。<c:when>有多个 if 子句和一个 else 子句的选项。比较:

<c:if test="${foo == 'bar'}">...</c:if>

<c:choose>
   <c:when test="${foo == 'bar'}">...</c:when>
   <c:when test="${foo == 'baz'}">...</c:when>
   <c:otherwise>...</c:otherwise>
</c:choose>
于 2012-11-26T17:52:38.340 回答
28

<c:if>不支持任何类型的“else”或“else if”功能。<c:when>做。所以如果你需要类似的东西

if (some_condition) {
    // ...
}

然后使用<c:if>. 如果你需要类似的东西

if (some_condition) {
    // ...
} else if (some_other_condition) {
    // ...
} else {
    // ...
}

然后使用<c:choose>with<c:when>和 (可选) <c:otherwise>

于 2012-11-26T17:48:41.813 回答