文档章节

jfinal中freemarker分页模版指令

SPPan
 SPPan
发布于 2017/06/02 10:38
字数 373
阅读 25
收藏 0

一、定义:jfinal中freemarker模版的分页指令定义如下

<#macro paginate pageNumber totalPage url param>
<#assign showPages = 10/>
<ul class="pagination teacms-pagination">
    <#if pageNumber!=1>
        <li><a href="${url}?p=${pageNumber - 1}&${param}">«</a></li>
    </#if>
    <#if pageNumber-showPages/2 gt 0>
        <#assign start = pageNumber-(showPages-1)/2/>
        <#if showPages gt totalPage>
            <#assign start = 1/>
        </#if>
    <#else>
        <#assign start = 1/>
    </#if>
    <#if totalPage gt showPages>
        <#assign end = (start+showPages-1)/>
        <#if end gt totalPage>
            <#assign start = totalPage-showPages+1/>
            <#assign end = totalPage/>
        </#if>
    <#else>
        <#assign end = totalPage/>
    </#if>
    <#assign pages=start..end/>
    <#list pages as page>
        <li <#if pageNumber == page>class="active"</#if>><a  href="${url}?p=${page}&${param}">${page}</a></li>
    </#list>
    <#if pageNumber!=totalPage>
        <li><a href="${url}?p=${pageNumber + 1}&${param}">»</a></li>
    </#if>
</ul>
</#macro>

参数说明:

  1. pageNumber 当前页;
  2. totalPage 总页数;
  3. url 当前页面的URL地址; 4.param 当前页面请求参数;

二、使用

在其他要使用的模版文件中,先用导入指令把分页指令引入,然后直接调用。使用方式有两种,分别如下:

方式一、使用include的方式:

1、引入文件
<#include "/_themes/Default/lib/paginate.ftl">
2、使用分页
<@paginate pageNumber=articlePage.pageNumber totalPage=articlePage.totalPage url=ctx param="searchKeyWord=${searchKeyWord!}"/>

方式二、使用import的方式:

1、引入文件
<#import "/_themes/Default/lib/paginate.ftl" as paginate>
2、使用分页
<@paginate.paginate pageNumber=articlePage.pageNumber totalPage=articlePage.totalPage url=ctx param="searchKeyWord=${searchKeyWord!}"/>

三、效果图

输入图片说明

其实这个分页模版指令并不仅仅适用于jfinal中,理论上与服务端使用的框架没有任何关系,仅仅是实例中使用的服务器分页对象为jfinal提供的Page类,不同的分页支持类在调用的时候不一样而已。

© 著作权归作者所有

共有 人打赏支持
SPPan
粉丝 10
博文 29
码字总数 15103
作品 0
成都
程序员
使用Freesql简单地实现多条件查询

在实际应用中我们经常会遇到多条件查询的情景,以往的解决方案是在java中对各个参数值进行非空之类的判断,再进行sql及参数的拼凑。 其实还有更简单的解决方法的--用Freemarker。Freemarker可...

jse7en
2014/03/23
0
4
Jfinal中FreemarkerRender小改进

在与朋友讨论中,说到jf中的FreemarkerRender不能读到jar中的文件,查看jf源码是没有加入Freemarker的ClassTemplateLoder.读不到jar包中的静态文件,尝试着自己改进了下这个render。 把jfina...

kyle1970
2013/01/03
0
5
JFinal 源码导读第四天(3) initRender

1.接上面的文章,initRender(); private void initRender() {RenderFactory renderFactory = RenderFactory.me();renderFactory.init(constants, servletContext);} 2.renderFactory.init(con......

skyim
2013/06/18
0
0
JFinal使用Freemarker作为展示层中的国际化配置使用

最近在使用jfinal,如果使用jsp作为展现层的文件,使用jfinal的国际化很简单,直接 I18N.getText("key")就可以了,如果使用freemarker就没这么简单了,不能所有的国际化文字都通过 Controll...

hulang
2014/04/27
0
0
JAVA 极速WEB+ORM框架 - JFinal

JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、p...

JFinal
2012/03/18
0
496

没有更多内容

加载失败,请刷新页面

加载更多

身处小公司,如何在2年内快速突破,拿到大厂offer?|掘金技术征文

本文是我一个朋友的经历,谨以此文告诉那些向往更好的未来发展而一直努力奋斗的朋友们。不管你现在身处什么小公司,都不要气馁,机会还是有的,只要你敢于拼搏奋斗,我相信你一定可以成功的。...

SuShine
25分钟前
1
0
web应用防火墙的作用

web应用防火墙也被称为网站应用级入侵防御系统,按照一些常规的定义,WAF是指通过一些列针对HTTP/HTTPS的安全策略专门为web应用提供保护的产品。它主要用于防御针对网络应用层的攻击,像SQL...

上树的熊
26分钟前
2
0
5分钟掌握var,let和const异同

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 原文出处:https://dzone.com/articles/javascript-difference-between-var-let-and-const-...

葡萄城技术团队
29分钟前
4
0
gif工具ffmpeg 的安装

ffmpeg 是一个可以将视频生成gif 格式的图片的工具, 下面说说如何安装这个工具吧: 1、 2 3 4 5 配置环境变量:

wangyanbao
30分钟前
1
0
RocketMq在windows下安装

mqnamesrv.cmd -n localhost:9876#启动namesrvmqbroker.cmd #启动brokermqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true//启动控制台java -jar rocketmq-console-ng......

王桥修道院副院长
30分钟前
1
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部