JSTL如果不为空,则返回false,但如果仍然进行,则返回

时间:2018-12-10 14:49:30

标签: jsp jstl

我有这个JSP代码:

<c:if test="${not empty error_message}">
    ${not empty error_message}
    <div class="isa_error">
        <i class="fa fa-times-circle"></i>
        ${error_message}
    </div>
</c:if>
<c:if test="${not empty success_message}">
    ${not empty success_message}
    <div class="isa_success">
         <i class="fa fa-check"></i>
         ${success_message}
    </div>
</c:if>
<c:if test="${not empty warning_message}">
    ${not empty warning_message}
    <div class="isa_warning">
         <i class="fa fa-warning"></i>
         ${warning_message}
    </div>
</c:if>
<c:if test="${not empty info_message}">
    ${not empty info_message}
    <div class="isa_info">
        <i class="fa fa-info-circle"></i>
        ${info_message}
    </div>
</c:if>

与此相关的是控制器中的

model.put("error_message", "Error: test");
model.put("success_message", "");
model.put("warning_message", "Warning: test");
model.put("info_message", "");

导致此输出:

enter image description here

因此,您可以清楚地看到,尽管${not empty success_message}返回了false,但<c:if test="${not empty success_message}"></c:if>中包含的代码仍然会执行。其余的都是空的。

为什么?如何获得<c:if来阻止代码执行?

0 个答案:

没有答案