ofbiz 分页代码

本文介绍了一种基于Java的分页查询实现方式,包括从HTTP请求中获取分页参数、计算开始索引、执行数据库查询并返回分页结果等步骤。通过使用Delegator组件和EntityCondition来构建查询条件,实现了对特定数据的高效分页展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String pageNumber = request.getParameter("pageNumber");
String pageSize = request.getParameter("pageSize");
// 当前页
int intPage = Integer.parseInt((pageNumber == null || pageNumber.equals("0")) ? "1" : pageNumber);
// 每页显示条数
int number = Integer.parseInt((pageSize == null || pageSize.equals("0")) ? "2" : pageSize);
// 每页的开始记录 第一页为1 第二页为number +1
int lowIndex = (intPage - 1) * number;
EntityListIterator eli = null;
List<EntityCondition> connList = FastList.newInstance();


EntityFindOptions efo = new EntityFindOptions(true, EntityFindOptions.TYPE_SCROLL_SENSITIVE,
EntityFindOptions.CONCUR_READ_ONLY, false);
try {
TransactionUtil.begin();
eli = delegator.find("CenterTrade",
EntityCondition.makeCondition(UtilMisc.toMap("tradeSource", 4, "tradeType", 0, "auditing", 1)),
null, UtilMisc.toSet("recordId", "sponsorUserId", "tradeSource", "tradeResult"),
UtilMisc.toList("-createdStamp"), efo);
int totalPage = (eli.getResultsSizeAfterPartialList() + number - 1) / number;
List<GenericValue> pages = eli.getPartialList(lowIndex, number);
request.setAttribute("pageSize", number);
request.setAttribute("pageNumber", intPage);
request.setAttribute("pages", pages);
request.setAttribute("total", totalPage);
TransactionUtil.commit();
} catch (GenericEntityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
TransactionUtil.rollback();
} catch (GenericTransactionException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} finally {
try {
if (eli != null) {
eli.close();
}
} catch (GenericEntityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值