JSTL条件检查

t0m*_*cat 16 jsp jstl el

在我当前的页面上,我使用JSTL检查数据是否可用于我的表单.我面临的问题是"如果没有数据,我也没有看到文本字段".我可以使用和标签来解决它,但这将需要很多if else else if all类型的代码贯穿整个页面.有谁能建议我更清洁解决这个问题?

<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>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 17

您可以在a中拥有多个条件test.

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

但你也可以使用empty关键字做一个nullcheck和lengthcheck.

<c:if test="${not empty salesData.salesArea}">
    <input type="text" id="sales_area" class="salesManagerStyle">
</c:if>
Run Code Online (Sandbox Code Playgroud)

现在,这是你能得到的最好的东西.如果您需要在页面的其他位置重复使用相同的条件,那么您也可以将其保存<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>
Run Code Online (Sandbox Code Playgroud)