<c:when>的行为是“else if”或“if”吗?

时间:2015-07-17 18:33:36

标签: spring-mvc jstl jsp-tags

使用jstl核心taglib,我想要使用<c:choose>检查多个条件。

<c:choose>
    <c:when test="${obj1.enabled}">
        ${obj1.name}
    </c:when>
    <c:when test="${obj2.enabled}">
        ${obj2.name}
    </c:when>
    <c:otherwise>
        <spring:message code="error.NoRecordFound"/>
    </c:otherwise>
<c:choose>

我将其读作&#34;如果对象1已启用,则打印其名称,否则,如果启用了对象2,则打印其名称,否则打印错误消息&#34;。

obj1obj2都可以启用,我担心它实际上会表现为&#34;如果对象1已启用,请打印其名称。如果启用了对象2,则打印其名称。如果以前的条件都不成立,则打印错误消息。&#34;

我在网上找到的所有使用多个<c:when>的例子都提供了相互排斥的条件,例如n < 100n > 1000,或者是一个虚拟字符串代替条件,例如<c:when test="condition 1 here"><c:when test="condition 2 here">。因此,从例子中我不知道它是否是if / else-if / else或者if if / if / if-none-the-above。

1 个答案:

答案 0 :(得分:1)

来自<c:choose> tag documentation(强调我的):

  

简单条件标记,用于为互斥条件操作建立上下文,标记为<when><otherwise>