一尘不染

JSTL条件检查

jsp

在当前页面上,我正在使用JSTL来检查表单中是否有数据。我面临的问题是“如果没有数据,我也不会看到文本字段”。我可以使用和标记来解决它,但这将需要大量的代码来遍及整个页面。谁能建议我一个更好,更清洁的解决方案?

<c:if test="${salesData!=null}">
  <c:if test="${fn:length(salesBundle.salesArea) > 0}">
  <input type="text" id="sales_area" class="salesManagerStyle">
  </c:if>
</c:if>

阅读 208

收藏
2020-06-08

共1个答案

一尘不染

一个中可以有多个条件test

<c:if test="${salesData != null && fn:length(salesBundle.salesArea) > 0}">
    <input type="text" id="sales_area" class="salesManagerStyle">
</c:if>

但是,您也可以使用empty关键字 同时 执行nullcheck和lengthcheck。

<c:if test="${not empty salesData.salesArea}">
    <input type="text" id="sales_area" class="salesManagerStyle">
</c:if>

现在,这是您所能获得的最好的。如果您需要在页面其他地方 重用 相同的条件,则也可以通过保存它<c:set>

<c:set var="hasSalesData" value="${not empty salesData.salesArea}" />
...
<c:if test="${hasSalesData}">
    <input type="text" id="sales_area" class="salesManagerStyle">
</c:if>
...
<c:if test="${hasSalesData}">
    Foo
</c:if>
2020-06-08