思路:
<#-- 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中实现通用的分页功能是提高Web应用程序性能和用户体验的重要一环。 ### FreeMarker通用分页知识点解析 #### 1. 分页宏(Macro)定义 FreeMarker中的宏允许我们封装可重用的代码块,这在实现通用分页...
本教程将带你入门Freemarker,通过9页的内容深入理解其基本概念、语法和应用。 首先,我们需要了解Freemarker的核心概念——模板。模板是Freemarker的工作基础,它定义了输出文件的结构和格式,而数据模型则是填充...
1. **配置Struts2**:确保你的项目已经正确配置了Struts2,包括struts2的核心库和其他必要的插件,如struts2-freemarker-plugin,这将使Struts2支持Freemarker模板。 2. **创建Action类**:在Action类中,你需要...
标题与描述概述的知识点主要集中在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
FreeMarker允许将数据模型和模板分离,通过模板可以直接生成静态的页面,也可以在服务器端生成动态的网页。 在模板开发方面,FreeMarker提供了一系列强大的功能,允许开发者使用指令和表达式来控制页面的结构和内容...
好用的 freemarker 分页宏模板dom结构比较主流的一个分页一排显示10个分页按钮(想定制的话把页码提取出来做为参数即可)pagenav.previousPage 存着上一页pagenav.totalPage 总页数pagenav.pageNo 当前页面页码page...
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-...
1. `lib/freemarker.jar`:这是核心的FreeMarker库,包含所有必要的类和方法来处理模板。 2. `docs`目录:包含FreeMarker的用户指南、API文档以及其他相关文档,对于学习和调试非常有用。 3. `examples`目录:可能...
FreeMarker 是一个强大的模板引擎,常用于Java Web开发...记住,学习和理解FreeMarker的宏机制是关键,这有助于你在实际项目中灵活应用和扩展分页功能。通过这种方式,你可以创建一个既高效又易于维护的分页解决方案。
分页查询通常涉及SQL的LIMIT和OFFSET子句,LIMIT用来指定每页的数据量,OFFSET则用于跳过前面的行数(根据当前页计算)。 接下来,我们将使用FreeMarker模板引擎来渲染页面。在Struts2中,我们可以定义一个FTL...
freemarker与struts 1.x 结合,生成html 在http://blog.csdn.net/chen1255 的web中有详细描述关于freemarker与struts1.x的结合
在静态化分页场景下,`freemarker`模板可以预先设计好,包括网页的布局、样式和动态数据占位符。当获取到`httpclient`请求的数据后,这些数据会被填充到模板中,生成最终的静态HTML页面。`freemarker`的语法简洁,...
在这个主题“freemarker自定义分页标签宏”中,我们将深入探讨如何在FreeMarker中创建自定义的分页标签宏,以便更有效地管理和展示大量数据。 首先,分页是一种常见的网页设计技术,用于将大量数据分割成小块,使...
分页是数据处理中常见的需求,特别是在大数据量展示时,为了提高用户体验和系统性能,通常会采用分页技术来分批次加载数据。这个"java实现分页示例代码共6页.pdf.zip"文件很可能包含了一个详细的教程或者示例代码,...
常用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....
一个用FTL定义的非常通用数据分页指令,有源码,有使用示例。使用效果图可以参看本人博客中的相关文章:http://blog.csdn.net/qjyong/archive/2009/10/18/4693142.aspx
1. **模板语言**:Freemarker使用简单的文本模板语言,其中包含指令和表达式。例如,`<#if>`、`<#foreach>`用于控制流,`${}`用于输出变量。 2. **数据模型**:Freemarker与Java对象交互,通过数据模型将Java对象...