/** * 获取上一篇,下一篇文章信息 */ @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 }
文章 上一篇/下一篇功能开发
核心代码
猜你喜欢
转载自q530414675.iteye.com/blog/1050394
今日推荐
周排行