<c:if>和<c:when>之间有什么区别?</c:when> </c:if>

时间:2012-11-26 17:47:09

标签: jsp jstl

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

2 个答案:

答案 0 :(得分:47)

<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>

答案 1 :(得分:26)

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

的东西
if (some_condition) {
    // ...
}

然后使用<c:if>。如果你需要类似于

的东西
if (some_condition) {
    // ...
} else if (some_other_condition) {
    // ...
} else {
    // ...
}

然后将<c:choose><c:when>和(可选)<c:otherwise>一起使用。