web-dev-qa-db-fra.com

Quelle est la différence entre <c: if> et <c: when>?

J'ai remarqué des utilisations de <c:if ...> en un seul endroit du code JSP et <c:when ...> dans l'autre. Les choses qu'ils font me ressemblent. Ces deux commandes ne sont-elles que des alias?

32
Dan

<c:if est une simple clause if. <c:when> a des options pour plusieurs clauses if et une clause else. Comparer:

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

avec

<c:choose>
   <c:when test="${foo == 'bar'}">...</c:when>
   <c:when test="${foo == 'baz'}">...</c:when>
   <c:otherwise>...</c:otherwise>
</c:choose>
48
Bozho

<c:if> ne prend en charge aucune sorte de fonctionnalité "else" ou "else if". <c:when> Est-ce que. Donc, si vous avez besoin de quelque chose d'analogue à

if (some_condition) {
    // ...
}

puis utilisez <c:if>. Si vous avez besoin de quelque chose d'analogue à

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

puis utilisez <c:choose> avec <c:when> et (éventuellement) <c:otherwise>.

26
Asaph