`
q530414675
  • 浏览: 4048 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 
阅读更多
核心代码
/**
	 * 获取上一篇,下一篇文章信息
	 */
	@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
	}
分享到:
评论
1 楼 java_web_hack1 2014-08-07  
这么复杂,怎么直接用sql做

相关推荐

    phpweb文章上一篇下一篇

    在PHPWeb内容管理系统中,"文章上一篇下一篇"功能是网站文章列表中常见的导航元素,它使得用户在浏览文章时可以方便地跳转到相邻的文章,提升用户体验。这个功能涉及到数据库查询、页面链接生成以及模板渲染等多个...

    phpweb建站系统,文章详情页出现上一篇,下一篇功能

    - PHPWeb支持插件开发,如果上一篇和下一篇功能作为插件实现,那么需要遵循PHPWeb的插件开发规范,创建相应的配置文件、模型、控制器和视图文件。 7. URL重写与路由: - 为了提供友好的URL,可能需要配置URL重写...

    get实现上一篇下一篇文章插件 for Phpcms2008.rar

    标题中的"get实现上一篇下一篇文章插件 for Phpcms2008.rar"指的是一个专为Phpcms2008内容管理系统设计的插件,该插件使用GET方法来获取并展示文章的上一篇和下一篇文章。在网页内容展示中,这种功能常见于博客或者...

    个人认为很不错的一篇游戏开发的文章详细介绍.rar

    个人认为很不错的一篇游戏开发的文章详细介绍.rar 个人认为很不错的一篇游戏开发的文章详细介绍.rar

    Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】

    Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】Vue3 + TypeScript + Uniapp 开发小程序【医疗小程序完整案例·一篇文章精通系列】Vue3 + TypeScript + Uniapp 开发小程序【医疗小...

    Laravel 中获取上一篇和下一篇数据

    不过由于这个取得下一条和取得上一条的记录其实在日常的开发当中还是会经常遇到,最常见的场景可能就是取得一篇文章的上一篇文章和下一篇文章了。其实这个在Laravel的Eloquent中实现还是挺容易的,不过由于Laravel并...

    一篇文章让你读懂小程序开发.pdf

    一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小程序开发.pdf一篇文章让你读懂小...

    PHPWE图片photo模块 上一篇下一篇插件定制

    这个插件是为了解决在浏览图片时,用户能够方便地在图片之间进行导航,类似于文章列表中的“上一篇”和“下一篇”功能。 首先,让我们详细了解一下“上一篇下一篇”插件的核心功能。这个插件主要是为了增强用户体验...

    thinkphp实现上一篇与下一篇的方法

    在Web内容管理系统中,常需要实现文章的上一篇和下一篇文章的功能,以便用户可以方便地浏览相关内容。在ThinkPHP中实现这一功能,可以通过查询数据库来获取符合条件的文章记录。本文将详细介绍两种不同的实现方法,...

    pb开发经验文章120篇

    "pb开发经验文章120篇"是一个集合,包含了对PowerBuilder开发过程中的各种实践、技巧、问题解决和最佳实践的深度探讨。 这些文章可能涵盖了以下关键知识点: 1. **PowerBuilder基础**:包括PB的环境配置、工作流、...

    WordPress抽奖插件对一篇文章下的评论者进行随机抽签

    本篇文章将详细探讨如何使用WordPress抽奖插件来对一篇文章下的评论者进行随机抽签。 首先,我们需要了解WordPress插件的基本概念。插件是WordPress平台上的独立功能模块,可以通过安装和激活来扩展网站的功能。...

    PHP实现上一篇下一篇的方法实例总结

    在PHP开发中,实现“上一篇”和“下一篇”的功能是一项常见的需求,特别是在构建内容管理系统(CMS)时。这一功能允许用户浏览同一分类下的相邻文章,提供流畅的阅读体验。以下是一个详细的步骤和实例,解释如何使用...

    上一篇,下一篇过程代码

    在网页设计和开发中,"上一篇"和"下一篇"功能是常见的导航元素,它允许用户方便地浏览网站上的相关文章或内容。这段代码提供了一个VBScript实现的函数,用于在ASP(Active Server Pages)环境中获取当前内容的"上一篇...

    微信小程序云开发实现一对一即时聊天,发送语音、文件、图片、添加好友等功能

    利用云开发的即时通信...可以直接部署,具体的文章请看我的两篇 博客: 1. https://blog.csdn.net/weixin_41595277/article/details/102765508 2. https://blog.csdn.net/weixin_41595277/article/details/105350374

    Java爬虫【一篇文章精通系列-案例开发-巨细】HttpClient5 + jsoup + WebMagic + spider

    本篇文章以"一篇文章精通系列-案例开发-巨细"为主题,详细介绍了如何使用HttpClient5、jsoup、WebMagic以及spider-flow这四个关键工具来构建一个强大的Java爬虫系统。以下是对这些工具和技术的深入解析。 首先,...

    2008年一篇文章参数化程序

    标题中的“2008年一篇文章参数化程序”可能指的是在2008年发表的一篇关于参数化技术在程序设计或建模领域的研究文章。参数化程序设计是一种编程范式,它允许开发者通过定义一组参数来创建可重用的代码模块。这些参数...

    C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial 前38节)

    C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十)第一部分拓展小结篇 C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十一)主位式地图移动模式 C#开发WPF/Silverlight动画及游戏...

    一篇介绍IDEA的文章,有完整代码

    这篇文章将深入探讨IDEA的主要特点、优势以及如何使用它进行C语言开发。 首先,IDEA的核心特性之一是其智能代码助手。它能自动完成代码、检测错误、提供代码重构工具,并帮助开发者理解代码结构。例如,通过它的...

    用PHP实现 上一篇、下一篇的代码

    在PHP编程中,"上一篇"和"下一篇"功能常用于文章列表或博客系统中,帮助用户方便地浏览相邻的文章。以下是如何使用PHP实现这个功能的详细解释。 首先,我们需要理解给定的代码片段。在这个例子中,我们有一个名为`...

Global site tag (gtag.js) - Google Analytics