我有一个从DB返回的Collection对象。我想看看大小是0还是>0,并相应地引导我的前进。
为了实现这一点,我使用了迭代器和hasNext()
,如下所示:
if (!report.getFtRecords().iterator().hasNext())
{
NoRecord = true;
}
if (NoRecord)
forwardName = "successNoRecord"; // retains in the same page
else
forwardName = "success"; //goes to 2nd page page
字符串
在JSP中,我使用相同的报表对象,在scriptlet中,它们执行iterator.hasNext()
。对于从DB返回的“0”条记录和从DB返回的1条以上的记录,此方法可以正常工作。
但是,如果只有一条记录,我使用相同的报告对象,因为我在action类中执行hasNext()
,并在JSP中执行相同的操作,Cursor从第一条记录中移出,并在JSP中不显示任何内容(因为结果集有1条记录)。因为它是一个迭代器,所以我不能重置集合。我也不能得到集合的size(),因为我的类扩展了抽象集合,所以任何调用.size()
的东西都会抛出异常。
我该如何处理同样的事情?我试图在数据库中通过发送最后一列的计数来处理,但最终会遇到同样的问题。有什么建议吗
1条答案
按热度按时间wf82jlnq1#
toArray()是否也返回UnsupportedOperationException?
report.getFtRecords().toArray()?
你可以1)使用数组进行迭代,2)检查数组的长度并准确执行。