目录

Freemarker分页模板

前阵子一个项目用了Springboot+Freemarker Freemarker分页模板 ,然后结合Spring Data Jpa 分页写了一个Freemarker的分页,可以直接拿来用,基本上已经很完整了。之前还写过一个Thymeleaf的:Spring Jpa Data + Thymeleaf + Bootstrap实现分页

<#assign currentPage = "${dataPage.number + 1}"/>
<#assign size = "${dataPage.size}"/>
<div class="col-md-12 column">
    总条数: ${dataPage.totalElements}
    <ul class="pagination pull-right">
    <#if (dataPage.number + 1) lte 1>
        <li class="disabled"><a href="#">上一页</a></li>
    <#else/>
        <li><a href="index?page=${dataPage.number}&size=${dataPage.size}">上一页</a></li>
    </#if>

    <#--第一页-->
    <#if dataPage.totalPages gt 0>
        <li
        <#if (dataPage.number + 1) == 1> class="disabled"</#if>
        >
            <a href="index?page=1&size=${dataPage.size}">1</a>
        </li>
    </#if>

    <#--如果不只有一页-->
    <#if (dataPage.totalPages gt 1)>
        <#--如果当前页往前查3页不是第2页-->
        <#if ((dataPage.number + 1) - 3) gt 2>
            <li><span class="text">…</span></li>
        </#if>

        <#--当前页的前3页和后3页-->
        <#list ((dataPage.number + 1) - 3)..((dataPage.number + 1) + 3) as index>
            <!--如果位于第一页和最后一页之间-->
            <#if (index gt 1) && (index lt dataPage.totalPages)>
                <li
                <#if (dataPage.number + 1) == index>class="disabled"</#if>
                >
                    <a href="index?page=${index}&size=${dataPage.size}">${index}</a>
                </li>
            </#if>
        </#list>

        <#--如果当前页往后查3页不是倒数第2页-->
        <#if ((dataPage.number + 1) + 3) lt (dataPage.totalPages - 1)>
            <li><span class="text">…</span></li>
        </#if>

        <#--最后页-->
        <li
        <#if (dataPage.number + 1) == dataPage.totalPages>class="disabled"</#if>
        >
            <a href="index?page=${dataPage.totalPages}&size=${dataPage.size}">${dataPage.totalPages}</a>
        </li>
    </#if>

    <#if ((dataPage.number + 1) gte dataPage.totalPages)>
        <li class="disabled"><a href="#">下一页</a></li>
    <#else/>
        <li><a href="./index?page=${dataPage.number + 2}&size=${dataPage.size}">下一页</a></li>
    </#if>
    </ul>
</div>