我有这个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", "");
导致此输出:
因此,您可以清楚地看到,尽管${not empty success_message}
返回了false
,但<c:if test="${not empty success_message}"></c:if>
中包含的代码仍然会执行。其余的都是空的。
为什么?如何获得<c:if
来阻止代码执行?