<c:choose>

操作的語法
<c:choose>
<c:when test="expression">
body content
</c:when>
<c:when test="expression">
body content
</c:when>
...
<c:otherwise>
body content
</c:otherwise>
</c:choose>

注意:每個要測試的條件都由相應的 <c:when> 標記來表示,至少要有一個 <c:when> 標記。只會處理第一個其 test 值爲 true 的 <c:when> 標記體內的內容。如果沒有一個 <c:when> 測試返回 true ,那麼會處理 <c:otherwise> 標記的主體內容。注:儘管如此, <c:otherwise> 標記卻是可選的; <c:choose> 標記至多可有一個嵌套的 <c:otherwise> 標記.

<----------------------------------------------------------------------->
<c:choose>
<c:when test="${opreateType == 'add'}">
<c:set var="url" value="${ctx}/temp/add.do"></c:set>
<c:set var="z" value="5"></c:set>
</c:when>
<c:when test="${opreateType == 'add'}">
<c:set var="url" value="${ctx}/temp/update.do"></c:set>
</c:when>
</c:choose>

上述代碼會調用2次getOpreateType(). 但是奇怪的是:即使第一次<c:when>的test爲true, 仍然會調用一次getOpreateType()(即第二個<c:when>的test, 這裏我設置2個測試條件一樣, 經過調試設置斷點顯示的運行此時). 不過, 即使第二次<c:when>的test也爲true,但是卻不執行第二個<c:when></c:when>之間的代碼.
這是什麼機制來的, 源碼就不想看了. 還是用 : ? 運算符好了.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章