分页 页数过长省略... 怎么写?
来源:9-4 卖家订单-controller-翻页
习惯沉淀
2019-05-15
老师留了一个课堂作业,自己没有研究出来 ,希望老师说一下思路 说一下思路就好
3回答
-
慕尼黑6523987
2019-07-25
<#list 1..orderDTOPage.getTotalPages() as index>
<!--当前页不可点击-->
<#if currentPage == index>
<li class="disabled"><a href="#">${index}</a></li>
<!--如果循环到了当前页加上限制显示条数(该例为前后各显示10条),之后的循环不在进行-->
<#elseif index gt currentPage+10>
<li><a href="#">...</a></li>
<#break >
<!--如果循环在当前页减去限制显示条数(该例为前后各显示10条),
处理放在下一个else之中,当前循环不进行任何操作-->
<#elseif index lt currentPage-10>
<#continue >
<!--处理放在这。正好到限制页的时候。显示...-->
<#elseif index == currentPage-10>
<li><a href="#">...</a></li>
<#else >
<li><a href="list?page=${index}&size=${size}">${index}</a></li>
</#if>
</#list>20 -
廖师兄
2019-05-15
思路就是要在模版for循环里,判断后才决定是否显示。
122019-05-17 -
冲锋战神
2019-06-02
<#-- 列表 --> <#-- 期望的页码标签长度 --> <#assign expectSize = 7> <#-- 期望的当前页码标签前展示的页码标签数量 --> <#assign expectBefore = 2> <#-- 初始化长度计数, 用于统计实际的页码标签个数 --> <#assign listSize = 0> <#-- 遍历 --> <#list 1..orderDtoPage.totalPages as index> <#-- 页码标签长度小于期望值才继续 --> <#if listSize lt expectSize> <#-- 索引 大于 (当前页码 - 当前页码前的个数), 也就是说当前标签前只有expectBefore个页码标签 --> <#if index gte (currentPage - expectBefore)> <#assign listSize = listSize + 1><#-- 每渲染一个页码标签, 计数加一 --> <!-- 渲染页码标签 --> <#if index == currentPage> <li class="disabled"><a href="#">${index}</a></li> <#else> <li><a href="/sell/seller/order/list?page=${index}&size=${size}">${index}</a></li> </#if> <#else> <#-- 处理页码末尾页码数不足的情况, 其实就是保持页码标签数量一直等于expectSize, 是对上面条件生成的便签数不足时的补充 --> <#if index gt (orderDtoPage.totalPages - expectSize)> <#assign listSize = listSize + 1><#-- 每渲染一个页码标签, 计数加一 --> <!-- 渲染页码标签, 一段重复代码 --> <#if index == currentPage> <li class="disabled"><a href="#">${index}</a></li> <#else> <li><a href="/sell/seller/order/list?page=${index}&size=${size}">${index}</a></li> </#if> </#if> </#if> </#if> </#list>
中间列表这块, 上一页下一页就不放上来了, 太占地方. 效果如下:这是百度贴吧的截图, 我就是模仿这个的, 没有按中间是 ... 的来做. 其实可以直接加一个输入框直接跳去多少页也可以.
其实代码没多少, 就是上面有一些重复代码段, 还有很多注释, 我也是今天刚接触 freemarker , 我想肯定有办法去除重复的代码段, 但是我不会...
做完我就传了, 有没有bug不知道, 效果是达到了, 仅供参考.
00
相似问题