`

freemarker分页(首页、尾页和1..9范围)

 
阅读更多

思路:

<#-- 1.总页码大于9[1..总页码] -->

<#-- 2.当前页码小于4[1..9] -->

<#-- 3.当前大于4 && 当前+4小于总页码-->

<#-- 4.当前大于4 && 当前+4大于总页码-->

 

说明:

pageForm包含属性:pageIndex当前页码、pageCount总页码、total总数据量、pageSize每页显示条数(页面上不需要使用这个属性,主要用于后台获取数据的时候skip计算使用)

 

后台中:

总页码:pageCount = (total - 1) / pageSize + 1;

 

总的代码为:

 

<#-- 总页数,当前页 -->
<div class="pages" id="pages">
	<label>共${pageForm.pageCount}页,约${pageForm.total}条数据</label> 
	<#if pageForm.pageIndex != 1>
		<a href="1" title="首页" class="nav"><span>首页</span></a>
		<a href="${pageForm.pageIndex-1}" title="上一页" class="nav"><span>上一页</span></a>
	<#else>
		<span>首页</span>
		<span>上一页</span>
	</#if>
	
	<#-- 1.总页码大于9[1..总页码] -->
   	<#if pageForm.pageCount lt 9>
   		<#list 1..pageForm.pageCount as index>
	        <#if pageForm.pageIndex == index>
	        	<a href="#" class="current">${index}</a>
	        <#else>
	            <a href="${index}" title="第${index}页" >${index}</a>  
	        </#if>  
   	   </#list>
	<#else>
		<#-- 2.当前页码小于4[1..9] -->
		<#if pageForm.pageIndex lt 5>
			<#list 1..9 as index>
		        <#if pageForm.pageIndex == index>
		        	<a href="#" class="current">${index}</a>
		        <#else>
		            <a href="${index}" title="第${index}页" >${index}</a>  
		        </#if>  
   	  		</#list>
		<#else>
			<#--当前大于4 && 当前+4小于总页码-->
			<#if pageForm.pageIndex+4 lt pageForm.pageCount>
				<#list pageForm.pageIndex-4..pageForm.pageIndex+4 as index>
			        <#if pageForm.pageIndex == index>
			        	<a href="#" class="current">${index}</a>
			        <#else>
			            <a href="${index}" title="第${index}页" >${index}</a>  
			        </#if>  
			    </#list>
			 <#else>
			 	<#--当前大于4 && 当前+4大于总页码-->
			 	<#list pageForm.pageCount-8..pageForm.pageCount as index>
			        <#if pageForm.pageIndex == index>
			        	<a href="#" class="current">${index}</a>
			        <#else>
			            <a href="${index}" title="第${index}页" >${index}</a>  
			        </#if>  
			    </#list>
		    </#if> 
		</#if>  
	</#if>   
      
	<#if pageForm.pageIndex != pageForm.pageCount>
		<a href="${pageForm.pageIndex+1}" title="下一页" class="nav"><span>下一页</span></a>	
		<a href="${pageForm.pageCount}" title="未页" class="nav"><span>未页</span></a>
	<#else>
		<span>下一页</span>
		<span>未页</span> 
	</#if>
</div>
分享到:
评论

相关推荐

    FreeMarker通用的分页

    在FreeMarker中实现通用的分页功能是提高Web应用程序性能和用户体验的重要一环。 ### FreeMarker通用分页知识点解析 #### 1. 分页宏(Macro)定义 FreeMarker中的宏允许我们封装可重用的代码块,这在实现通用分页...

    freemarker入门共9页.pdf.zip

    本教程将带你入门Freemarker,通过9页的内容深入理解其基本概念、语法和应用。 首先,我们需要了解Freemarker的核心概念——模板。模板是Freemarker的工作基础,它定义了输出文件的结构和格式,而数据模型则是填充...

    Freemarker分页

    1. **配置Struts2**:确保你的项目已经正确配置了Struts2,包括struts2的核心库和其他必要的插件,如struts2-freemarker-plugin,这将使Struts2支持Freemarker模板。 2. **创建Action类**:在Action类中,你需要...

    freemarker的分页功能

    标题与描述概述的知识点主要集中在Freemarker模板引擎在实现分页功能时的应用,特别是当后端数据库为MySQL的情况下。Freemarker是一个用于生成动态文本的模板引擎,它被广泛应用于Web开发中,用于将数据模型转换成...

    hudson.freemarker_ide_0.9.14

    hudson.freemarker_ide_0.9.14 hudson.freemarker_ide_0.9.14 hudson.freemarker_ide_0.9.14 hudson.freemarker_ide_0.9.14 hudson.freemarker_ide_0.9.14

    FreeMarker_Manual_zh_CN.pdf

    FreeMarker允许将数据模型和模板分离,通过模板可以直接生成静态的页面,也可以在服务器端生成动态的网页。 在模板开发方面,FreeMarker提供了一系列强大的功能,允许开发者使用指令和表达式来控制页面的结构和内容...

    FreeMarker分页宏模板freemarker-pagenav.zip

    好用的 freemarker 分页宏模板dom结构比较主流的一个分页一排显示10个分页按钮(想定制的话把页码提取出来做为参数即可)pagenav.previousPage 存着上一页pagenav.totalPage 总页数pagenav.pageNo 当前页面页码page...

    freemarker.jar

    camel-freemarker-1.6.4.jar, camel-freemarker-2.8.1.jar, com.springsource.freemarker-2.3.15.jar, com.springsource.freemarker-sources-2.3.15.jar, freemarker-1.4.1.jar, freemarker-2-3-18.jar, freemarker-...

    apache-freemarker-2.3.26-incubating-bin.tar.gz

    1. `lib/freemarker.jar`:这是核心的FreeMarker库,包含所有必要的类和方法来处理模板。 2. `docs`目录:包含FreeMarker的用户指南、API文档以及其他相关文档,对于学习和调试非常有用。 3. `examples`目录:可能...

    freemarker 实现宏分页

    FreeMarker 是一个强大的模板引擎,常用于Java Web开发...记住,学习和理解FreeMarker的宏机制是关键,这有助于你在实际项目中灵活应用和扩展分页功能。通过这种方式,你可以创建一个既高效又易于维护的分页解决方案。

    freemarker_struts2分页

    分页查询通常涉及SQL的LIMIT和OFFSET子句,LIMIT用来指定每页的数据量,OFFSET则用于跳过前面的行数(根据当前页计算)。 接下来,我们将使用FreeMarker模板引擎来渲染页面。在Struts2中,我们可以定义一个FTL...

    freemarker for struts 1.x

    freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合

    httpclient,freemarker的静态化分页

    在静态化分页场景下,`freemarker`模板可以预先设计好,包括网页的布局、样式和动态数据占位符。当获取到`httpclient`请求的数据后,这些数据会被填充到模板中,生成最终的静态HTML页面。`freemarker`的语法简洁,...

    freemarker自定义分页标签宏

    在这个主题“freemarker自定义分页标签宏”中,我们将深入探讨如何在FreeMarker中创建自定义的分页标签宏,以便更有效地管理和展示大量数据。 首先,分页是一种常见的网页设计技术,用于将大量数据分割成小块,使...

    java实现分页示例代码共6页.pdf.zip

    分页是数据处理中常见的需求,特别是在大数据量展示时,为了提高用户体验和系统性能,通常会采用分页技术来分批次加载数据。这个"java实现分页示例代码共6页.pdf.zip"文件很可能包含了一个详细的教程或者示例代码,...

    常用jar包 freemarker-2.3.13.jar mysqldriver.jar junit-3.8.1.jar

    常用jar包二十几个 bsh-1.3.0.jar commons-dbcp-1.2.1.jar commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar commons-pool-1.2.jar dom4j-1.6.1.jar freemarker-2.3.13.jar jbpm.sar....

    freemarker自定义的通用分页指令(标签)源码和使用示例

    一个用FTL定义的非常通用数据分页指令,有源码,有使用示例。使用效果图可以参看本人博客中的相关文章:http://blog.csdn.net/qjyong/archive/2009/10/18/4693142.aspx

    freemarker-2.3.22

    1. **模板语言**:Freemarker使用简单的文本模板语言,其中包含指令和表达式。例如,`&lt;#if&gt;`、`&lt;#foreach&gt;`用于控制流,`${}`用于输出变量。 2. **数据模型**:Freemarker与Java对象交互,通过数据模型将Java对象...

Global site tag (gtag.js) - Google Analytics