В чем разница между <c: if> и <c: when>?
Я заметил использование <c:if ...>
в одном месте кода JSP и <c:when ...>
в другом. То, что они делают, выглядит одинаково для меня. Являются ли эти две команды просто псевдонимами?
Ответы
Ответ 1
<c:if
является простым if-предложением. <c:when>
имеет опции для нескольких if-clauses и 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>
Ответ 2
<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>
.