文章 上一篇/下一篇功能开发

核心代码

/**
* 获取上一篇,下一篇文章信息
*/
@SuppressWarnings("unchecked")
public void getUpNextInfo(NewsPublicationInfoViewForm newsPublicationInfoViewForm,int infoId,int cateId,NewsPublicationInfoHandler handler)throws Exception{
// 根据文章加载上一篇,下一篇文章信息 start update by KF45113 date 2011-5-18
NewsPublicationInfoVO infoVO = new NewsPublicationInfoVO();
infoVO.setCateId(cateId);
try {
// 定义一个infoList 存放查询得到的文章信息
List infoList = handler.selectInfoIdByCate(infoVO);
// 定义一个infoIdList 存放文章ID 注:文章一定根据顺序排好序
List infoIdList = new ArrayList();
// 定义一个map存放文章信息,避免重复操作数据库
Map map = new HashMap();
// 迭代文章信息List
for (Iterator iter = infoList.iterator(); iter.hasNext();) {
NewsPublicationInfoVO infoVO_TEMP = (NewsPublicationInfoVO) iter.next();
// 把刊期所有的文章ID 标题信息放入Map,减少数据库查询操作 key:文章ID value 文章Obj
map.put(infoVO_TEMP.getInfoId().toString(), infoVO_TEMP);
// 把刊期所有的文章ID 放入存放文章ID 的List中
infoIdList.add(infoVO_TEMP.getInfoId().toString());
}
if(0<infoIdList.size()){
// 根据当前文章从List 中获取上一篇文章ID
// 根据当前文章在infoIdList 中的索引找出上一篇文章的索引
int upInfoIndex = infoIdList.indexOf(String.valueOf(infoId))-1;
// 根据当前文章在infoIdList 中的索引找出下一篇文章的索引
int nextInfoIndex = infoIdList.indexOf(String.valueOf(infoId))+1;
try {
if(null!=infoIdList.get(upInfoIndex)){
// 根据上一篇文章的索引获取上一篇文章的ID
String sInfoId = (String) infoIdList.get(upInfoIndex);
// 根据上一篇文章ID 从Map 中获取上一篇文章信息
newsPublicationInfoViewForm.setUpInfoVO((NewsPublicationInfoVO)map.get(sInfoId));
}
} catch (Exception e) {
newsPublicationInfoViewForm.setUpInfoVO(null);
}finally{
try {
if(null!=infoIdList.get(nextInfoIndex)){
// 根据当前文章从List 中获取下一篇文章ID
String nextInfoId = (String) infoIdList.get(nextInfoIndex);
// 根据下一篇文章ID 从Map 中获取下一篇文章信息
newsPublicationInfoViewForm.setNextInfoVO((NewsPublicationInfoVO)map.get(nextInfoId));
}
} catch (Exception e) {
newsPublicationInfoViewForm.setNextInfoVO(null);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
// 根据文章加载上一篇,下一篇文章信息 end update by KF45113 date 2011-5-18
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值