【问题标题】:Does <c:when> act like `else if` or `if`?<c:when> 的行为类似于 `else if` 或 `if`?
【发布时间】:2015-07-17 18:33:35
【问题描述】:

使用 jstl 核心标记库,我有多个条件要使用 &lt;c:choose&gt; 检查。

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

我将其读作“如果启用对象 1,则打印其名称,否则如果启用对象 2,则打印其名称,否则打印错误消息”。

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

我在网上找到的所有使用多个&lt;c:when&gt; 的示例都提供了互斥条件,例如n &lt; 100n &gt; 1000,或者使用虚拟字符串代替条件,例如&lt;c:when test="condition 1 here"&gt;&lt;c:when test="condition 2 here"&gt;。因此,从我发现的示例中不清楚是 if/else-if/else 还是 if/if/if-none-of-the-above。

【问题讨论】:

  • 试试看怎么样?

标签: spring-mvc jstl jsp-tags


【解决方案1】:

来自&lt;c:choose&gt; tag documentation(强调我的):

互斥条件操作建立上下文的简单条件标记,标记为&lt;when&gt;&lt;otherwise&gt;

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2017-07-03
    • 2016-06-17
    • 2020-12-05
    • 2019-07-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    相关资源
    最近更新 更多