你可以用<c:otherwise>和<c:if>或者只用<c:when>?</c:when> </c:if> </c:otherwise>

时间:2014-01-30 15:04:38

标签: javascript jsp jsf jstl jsp-tags

我已经在<c:if><c:otherwise>搜索了StackOverflow并找到了一些信息,但并不完全是我正在寻找的信息。 <c:otherwise>似乎设计如下:

<c:choose>
    <c:when test="${somecondition}">
        <%-- do stuff --%>
    </c:when>
    <c:when test="${someothercondition}">
        <%-- do other stuff --%>
    </c:when>
    <c:otherwise>
        <%-- do other other stuff --%>
    </c:otherwise>
</c:choose>

(基本上就像一个switch语句。)

但是,我发现的其他问题都没有明确告诉我这是否是您使用<c:otherwise>的唯一方法(尽管他们似乎暗示了它)。你能不能

<c:if test="${somecondition}">
        <%-- do stuff --%>
</c:if>
<c:otherwise>
    <%-- do other stuff --%>
</c:otherwise>

(就像if / else一样)或者这是错的?

(请检查我的标签。我必须同时使用/学习JSP,Javascript和JQuery,因此有时会混淆哪种新东西是新语言。)

1 个答案:

答案 0 :(得分:3)

如果没有<c:choose />,则无法使用它。 JSTL区别于简单条件标记和条件块执行:

  

if 标记允许根据test属性的值条件执行其正文。

     

选择标记通过子标签时嵌入执行条件块执行。它呈现第一个标记的主体,其标记的测试条件评估为真。如果嵌套的标签的测试条件都没有计算为true,那么将评估其他标签的主体(如果存在)。

所以你肯定需要一个条件块(<c:choose />)才能使用<c:otherwise />

另见: