Freemarker分页

  1. Freemarker 分页

Freemarker 分页

公司后台用的 java,模板使用的是 freemarker,一般分页都是写在后台的,这样打开了页面不用加载 js 就可以跳去想要的页面了,这里学习一下 freemarker 里面分页的写法

<#-- 传入当前的页面和总共的页数 -->
<#macro pageNavigationOrg pageIndex pageCount>
    <#assign curPage = pageIndex>
    <#assign pageCount = pageCount>
<#--
    开始页 : 求最大值(当前页和2的差值 , 1)
-->
    <#if ((curPage - 2) > 1)>
        <#assign startPage = (curPage - 2)>
    <#else>
        <#assign startPage = 1>
    </#if>
<#--
    结束页 : 求最小值(开始页+4, 总页数)
-->
    <#if ((startPage + 4) < pageCount)>
        <#assign endPage = (startPage + 4)>
    <#else>
        <#assign endPage = pageCount>
    </#if>
<div class="pages">
<#--如果当前页大于第一页,输出上一页导航-->
    <#if (curPage > 1) >
        <#assign prePage = curPage-1>
        <a href="/staff/queryStaffByOrg?orgId=${orgId!''}&pageNumber=${prePage}" class="prev"
           title="上一页">上一页</a>
    </#if>
<#--开始输出页码导航-->
<#--
    如果开始页大于1 (表示当前页和2的差值大于1)
        先输出"第一页的link"和"..."
    否则跳过
        然后由遍历的过程输出第一页的链接
-->
    <#if (startPage > 1)>
        <a href="/staff/queryStaffByOrg?orgId=${orgId!''}&pageNumber=1" class="page-item item-number" title="1">1</a>
        <#if (startPage > 2)>
            <span class="page-item item-ellipsis">...</span>
        </#if>
    </#if>
<#--
    遍历输出开始页到结束页的链接
        如果是当前页,页码没有链接并且有自己的样式
-->
    <#if (startPage <= endPage)>
        <#list startPage..endPage as page>
            <a href="/staff/queryStaffByOrg?orgId=${orgId!''}&pageNumber=${page}" class="page-item item-number<#if curPage == page> cursor</#if>" title="${page}">${page}</a>
        </#list>
    </#if>
<#--
    如果endPage < pageCount     (表示结束页是startPage + 8,否则endPage = pageCount)
        1.先判断是否小于最后一页的前一页,如果是先输出"...",否则跳过
        2.单独输出最后一页
    否则跳过
        实质上在上面的遍历的过程中已经输出了最后一页的链接
-->
    <#if (endPage < pageCount)>
        <#if (endPage < pageCount - 1)>
            <span class="page-item item-ellipsis">...</span>
        </#if>
        <a href="/staff/queryStaffByOrg?orgId=${orgId!''}&pageNumber=${pageCount}" class="page-item item-number" title="${pageCount}">${pageCount}</a>
    </#if>
<#--如果当前页小于总页数,输出下一页导航-->
    <#if (curPage < pageCount)>
        <#assign nextPage = curPage+1>
        <a href="/staff/queryStaffByOrg?orgId=${orgId!''}&pageNumber=${pageCount}" data-pg="${nextPage}" class="next"
           title="下一页">下一页</a>
    </#if>
<#--结束输出页码导航-->
</div>
</#macro>

就是说先根据与 1 和 pageCount 的比较来判断定下了一个 startPage 和 endPage,这是决定中间的输出的,然后前面的...和后面的...这两个值是他们分别与 1 和 pageCount 来单独比较的,而上一页和下一页`是单独判断是否展示的。原来自己看了下分页,也就是这么简单的事情而已 (●’◡’●)ノ ♥


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com

文章标题:Freemarker分页

文章字数:804

本文作者:泽鹿

发布时间:2019-08-28, 16:45:23

最后更新:2019-08-28, 20:10:34

原始链接:http://panyifei.github.io/2019/08/28/技术/其他技术/Freemarker分页/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏