用iterator.hasNext(),不能实现翻页吗

janet
02-12-17 1 264

向你们请教,我使用EJB,通过session bean访问entity bean 查找数据库,在servlet中调用session bean中的方法ShowAllInfo()显示
int totalCount=0; //记录数
int pageSize=5; //页面大小
int pageCount; //页数
int pageIndex; //当前页码

java.util.Collection allInfo = null;
InitialContext jndiContext = new InitialContext();
InfoSessionLocalHome infoSessionLocalHome = (InfoSessionLocalHome)jndiContext.lookup("InfoSessionLocal");
InfoSessionLocal infoSession = infoSessionLocalHome.create();
allInfo=infoSession.ShowAllInfo();
然后转为iterator
java.util.Iterator iter = allInfo.iterator();

下面找到每页数据显示从第几条到第几条

if (pageIndex > 1)
{
while((i<(pageIndex - 1) * pageSize+1) && iter.hasNext())
{
i++;

}

while (iter.hasNext() && i<pageIndex*pageSize+1)
{
TblWebInfo oneInfo = (TblWebInfo)PortableRemoteObject.narrow(iter.next(),TblWebInfo.class);
i++;
}
} else
{
iter.hasNext();
}

再用iter.hasNext()方法寻找下一条记录,但iter.hasNext()不能实现翻页功能,第二页并不能显示第二页的内容,仍是第一页的内容。可能是Iterator没有指针,那该转成什么类型呢。

banq
2002-12-17 15:51

关于翻页输出,建议采取DAO 访问数据库,不要使用entity bean,会慢,具体写法参考petstore的catalogDAO