1

我有一个包含属性的 bean 列表。我正在构建 2 个子列表以查看其中的内容并传递到页面。

我需要检查两个子列表中的所有值是否都是空值

爪哇:

beans = dao.getResourceExpended(filter);
List<BigDecimal> scheduledBeans = new ArrayList<BigDecimal>();
List<BigDecimal> realBeans = new ArrayList<BigDecimal>();
for (ResourceBean f : beans)
{
    scheduledBeans.add(f.getScheduledResource());
    realBeans.add(f.getRealResource());
}

request.setAttribute("scheduledBeans", scheduledBeans);
request.setAttribute("realBeans", realBeans);

JSTL:

<c:choose>
    <c:when test="${empty scheduledBeans}">
        alert("scheduledBeans Empty");
    </c:when>
    <c:when test="${empty realBeans}">
        alert("realBeans Empty");
    </c:when>
</c:choose>

上面的“选择”不起作用,因为值返回为:

alert("scheduledBeans =" +  scheduledBeans);
alert("realBeans =" +  realBeans);
  • scheduledBeans = [null, null, null]
  • realBeans = [null, null, null]
4

1 回答 1

1

只是不要将null值添加到列表中。

代替

scheduledBeans.add(f.getScheduledResource());
realBeans.add(f.getRealResource());

经过

if (f.getScheduledResource() != null) {
    gescheduledBeans.add(f.getScheduledResource());
}
if (f.getRealResource() != null) {
    realBeans.add(f.getRealResource());
}

如果它们都是null,则列表保持为空,然后empty测试将通过。

于 2013-02-20T17:22:12.610 回答