文档章节

Freemarker自定义的分页指令

超龍
 超龍
发布于 2017/09/06 08:57
字数 431
阅读 8
收藏 0

分页标签pager.ftl的全部代码:

<#– 自定义的分页指令。
属性说明:
pageNo 当前页号(int类型)
pageSize 每页要显示的记录数(int类型)
toURL 点击分页标签时要跳转到的目标URL(string类型)
recordCount 总记录数(int类型)
使用方式:
<#if recordCount??>
<#import “/pager.ftl” as q>
<@q.pager pageNo=pageNo pageSize=pageSize recordCount=recordCount toURL=”testpager.do”/>
</#if>
–>
<#macro pager pageNo pageSize toURL recordCount>
<#– 定义局部变量pageCount保存总页数 –>
<#assign pageCount=((recordCount + pageSize – 1) / pageSize)?int>
<#if recordCount==0>共0页<#return></#if>

<#– 页号越界处理 –>
<#if (pageNo > pageCount)>
<#assign pageNo=pageCount>
</#if>
<#if (pageNo < 1)>
<#assign pageNo=1>
</#if>
<#– 上一页处理 –>
<#if (pageNo == 1)>
<a class=”disabled threeWord”>上一页</a>
<#else>
<a href=”${toURL}&pageNo=${pageNo – 1}” class=”threeWord”>上一页</a>
</#if>
<#– 如果前面页数过多,显示… –>
<#assign start=1>
<#if (pageNo > 4)>
<#assign start=(pageNo – 1)>
<a href=”${toURL}&pageNo=1″ class=”oneWord”>1</a>
<a href=”${toURL}&pageNo=2″ class=”oneWord”>2</a>&hellip;
</#if>
<#– 显示当前页号和它附近的页号 –>
<#assign end=(pageNo + 1)>
<#if (end > pageCount)>
<#assign end=pageCount>
</#if>
<#list start..end as i>
<#if (pageNo==i)>
<a class=”currentp”>${i}</a>
<#else>
<a href=”${toURL}&pageNo=${i}” class=”oneWord”>${i}</a>
</#if>
</#list>
<#– 如果后面页数过多,显示… –>
<#if (end < pageCount – 2)>
&hellip;
</#if>
<#if (end < pageCount – 1)>
<a href=”${toURL}&pageNo=${pageCount – 1}” class=”oneWord”>${pageCount-1}</a>
</#if>
<#if (end < pageCount)>
<a href=”${toURL}&pageNo=${pageCount}” class=”oneWord”>${pageCount}</a>
</#if>
<#– 下一页处理 –>
<#if (pageNo == pageCount)>
<a class=”disabled threeWord”>下一页</a>
<#else>
<a href=”${toURL}&pageNo=${pageNo + 1}” class=”threeWord”>下一页</a>
<a href=”${toURL}&pageNo=${pageCount}” class=”twoWord”>尾页</a>
</#if>
共<span class=”oneWord”>${pageCount}</span>页,跳到
<input type=”number” name=”gotoPageNo” min=”1″ max = “${pageCount}” maxlength=”4″>&nbsp;页
<button onclick=”javascript:gotopage()”>确定</button>
<script language=”javascript”>
function gotopage(){
var gotoPageNo = $(“input[name=’gotoPageNo’]”).val();
if(” != gotoPageNo){
if(${pageCount} < gotoPageNo){
gotoPageNo = ${pageCount};
}
if(1 > gotoPageNo){
gotoPageNo = 1;
}
location.href = “${toURL}&pageNo=” + gotoPageNo;
}else{
alert(“请输入页码!”);
$(“input[name=’gotoPageNo’]”).val(“”);
$(“input[name=’gotoPageNo’]”).focus();
}
return false;
}
</script>
</#macro>

 

© 著作权归作者所有

共有 人打赏支持
超龍
粉丝 1
博文 30
码字总数 8618
作品 0
朝阳
私信 提问
手把手教你新建Jfinal 项目(五)

Freemarker原理解析 2011-05-13 11:19:41| 分类: JavaEE | 标签:freemarker 模板 变量 数据模型 文件 |字号 订阅 FreeMarker生成静态页原理 FreeMarker适合于作为Web应用的表现层。freemar...

胡萝卜炒肉
2014/05/29
0
1
重写了JFinal的demo,加入了实际项目应用的封装

刚刚结束一个网站的开发(http://www.cnkuke.com)把项目中常用的freemarker宏和一些封装类分享给大家,希望能帮助初次使用JFinal做项目的同学少走弯路。 封装如下: 一、freemarker封装 分页...

axhack
2013/08/01
2.7K
15
Java模版引擎:Velocity 和 FreeMarker 孰优孰劣

对 Java 程序员来说,最优秀的模版引擎无外乎 Velocity 和 FreeMarker 了。但是对一个尚未接触过这两个项目的人来说,就不知道该选择哪个,哪个才是最适合自己的。下面的内容来自 FreeMarker...

红薯
2009/05/07
23.9K
17
FreeMarker 2.3.22 版本发布,Java 模板引擎

FreeMarker 2.3.22 版本发布,值得关注的特性: DefaultObjectWrapper 改进 (mostly on the field of Map and List wrapping), enabled by incompatible_improvements 2.3.22. 改进 Freemark......

CraneH
2015/06/09
2.2K
1
Spring Boot 最佳实践(三)模板引擎FreeMarker集成

一、FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用的组件。 ...

王磊
08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
今天
2
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
今天
4
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
3
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
3
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部