簡體   English   中英

如何在JSTL for Java JSP中執行“嵌套if”?

[英]How do I do “nested if” in JSTL for Java JSP?

我想做類似以下的事情:

<c:choose>
    <c:when test="${empty example1}">
    </c:when>
    <c:otherwise>
        <c:when test="${empty example2}">
        </c:when>
        <c:otherwise>
        </c:otherwise>              
    </c:otherwise>
</c:choose>

這甚至可能嗎? 我試圖運行時拋出一個異常。

謝謝。

你需要更像這樣做:

<c:choose>
    <c:when test="${empty example1}"> 
        <!-- do stuff -->
    </c:when> 
    <c:otherwise> 
        <c:choose>
            <c:when test="${empty example2}"> 
                <!-- do different stuff -->
            </c:when> 
            <c:otherwise> 
                <!-- do default stuff -->
            </c:otherwise>
        </c:choose>
    </c:otherwise> 
</c:choose>

這里顯示的詳細程度是一個很好的例子,說明為什么XML是用於實現多級條件語句的不良語言。

您可以在<c:choose>使用多個<c:when> <c:choose>

<c:choose>
    <c:when test="${empty example1}">
    </c:when>
    <c:when test="${empty example2}">
    </c:when>
    <c:otherwise>
    </c:otherwise>              
</c:choose>

我同意@BalusC - 你可以簡化聲明。 請記住c:when語句是互斥的,比如if-else if blocks。

JSTL 1.2規范聲明c:choose必須是至少一個c:when語句的父級,並且c:when必須始終在至少一個c:otherwise語句之前具有相同的直接父級。 從本質上講,這也意味着每個c:when必須有一個c:otherwisec:choose里面跟着它c:choose ,而c:choose必須包圍任何c:when + c:otherwise 從我所看到的,規范並不是指嵌套c:choose元素,所以我不知道它是否有效 - 但我認為你不會被迫嵌套它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM