检查列表是否包含所有空值

时间:2013-02-20 17:04:15

标签: java jstl

我有一个包含属性的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]

1 个答案:

答案 0 :(得分: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测试将通过。