核心代码
/**
* 获取上一篇,下一篇文章信息
*/
@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
}
分享到:
相关推荐
个人认为很不错的一篇游戏开发的文章详细介绍.rar 个人认为很不错的一篇游戏开发的文章详细介绍.rar
Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】Vue3 + TypeScript + Uniapp 开发小程序【医疗小...
不过由于这个取得下一条和取得上一条的记录其实在日常的开发当中还是会经常遇到,最常见的场景可能就是取得一篇文章的上一篇文章和下一篇文章了。其实这个在Laravel的Eloquent中实现还是挺容易的,不过由于Laravel并...
一篇文章让你读懂小程序开发.docx一篇文章让你读懂小程序开发.docx一篇文章让你读懂小程序开发.docx一篇文章让你读懂小程序开发.docx一篇文章让你读懂小程序开发.docx一篇文章让你读懂小程序开发.docx一篇文章让你读...
一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小...
Java爬虫【一篇文章精通系列-案例开发-巨细】HttpClient5 + jsoup + WebMagic + spider-flow【万字长文一篇文章学会】
利用云开发的即时通信...可以直接部署,具体的文章请看我的两篇 博客: 1. https://blog.csdn.net/weixin_41595277/article/details/102765508 2. https://blog.csdn.net/weixin_41595277/article/details/105350374
JAVA多线程——一篇文章让你彻底征服多线程开发.docx
java第十章答案JAVA多线程——一篇文章让你彻底征服多线程开发
一篇介绍 Java Socket 编程的经典文章.doc 一篇介绍 Java Socket 编程的经典文章.doc
WordPress抽奖插件,对一篇文章下的评论者进行随机抽签
C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十)第一部分拓展小结篇 C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式 C#开发WPF/Silverlight动画及游戏...
Qt是一套跨平台的C++应用程序开发框架,被广泛应用于开发图形用户界面(GUI)程序、嵌入式系统、移动设备应用等领域。它提供了丰富的类库和工具,使得开发者可以快速...以下是一个涵盖Qt开发的教程和案例的综合描述。
一篇转载 --- pci 设备驱动开发 文章
该文章非常适合学习或者开发grpc的技术人员阅读,通篇通俗易懂,解析全面,代码演示,刨析,一篇文章即可学会grpc编程 该文章总共分为八个章节: 1. proto文件详解 2. pb.cc, grpc.pb.cc文件的内容详解 3. 编写grpc...
开源App项目,每天一张精选倩图、一个精选小视频,一篇知乎美文
最近一直都在搞网站抓取方面的开发,闲着无聊逛逛论坛,发现有些帖子还是写的相当不错的,只是一篇一篇的点进去比较麻烦,于是就写了个小软件只是为了方便查看博客园和CSDN上的优秀文章。其实这个还可以拓展的,比如...
本文来自于简书,本篇是系列文章比较长,开篇同样是思维导图带大家一起了解文章,文章介绍的较为详细包括,模型,TCP/IP概念层模型,功能以及协议族等。一图看完本文计算机网络体系结构分层计算机网络体系结构分层 ...