文档章节

Freemarker自定义的分页指令

超龍
 超龍
发布于 2017/09/06 08:57
字数 431
阅读 5
收藏 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
FreeMarker 快速入门

什么是 FreeMarker? FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来 自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说...

点点与麦兜
2016/03/16
0
0
freemarker语法介绍及其入门

FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数...

wersdffg
2014/09/30
0
0
Freemarker中如何遍历List

Freemarker中如何遍历List摘要:在Freemarker应用中经常会遍历List获取需要的数据,并对需要的数据进行排序加工后呈现给用户。那么在Freemarker中如何遍历List,并对List中数据进行适当的排序...

oecp
2011/05/18
0
0
FreeMarker模板文件的组成及基本语法详解(一)

FreeMarker模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1. 文本:直接输出的部分 2. 注释:<#-- ... -->格式部分,不会输出 3. 插值:即${...}或#{...}格式的部分...

oecp
2011/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
14分钟前
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
48分钟前
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
0
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
2
0
设计模式之五 责任链模式(Chain of Responsibility)

一. 场景 相信我们都有过这样的经历; 我们去职能部门办理一个事情,先去了A部门,到了地方被告知这件事情由B部门处理; 当我们到了B部门的时候,又被告知这件事情已经移交给了C部门处理; ...

JackieRiver
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部