2012-11-26 90 views
17

我注意到在一個JSP代碼中使用了<c:if ...>,在另一個地方使用了<c:when ...>。他們做的事情對我來說看起來一樣。這兩個命令是別名嗎?<c:if>和<c:when>有什麼區別?

回答

30

<c:if是一個簡單的if-子句。 <c:when>有多個if-clause和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> 
19

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

相關問題