标签:
其实很普通的功能,今天把分页分离出来,放到一个 ftl里边,以后用的话只需要引入即可,真TMD爽a
本文只是记录一下,自己爽一爽的,不能作为例子(代码没有完全粘过来),而且有待改进。。。
前台使用:

<#include "include/page.ftl" />
后台Action需要设置好 PageModel
public class PageModel {
private long count;
private long totalPage;
private long currentPage;
private long pageSize;
private Map<String, String> pageParams;
private String requestUrl;
// 构造方法、set、get已隐藏
}
pageModel = new PageModel(products.getCount(), products.getTotalPage(), products.getCurrentPage(), products.getPageSize());
pageParams.put("key", keyWord);
pageParams.put("bp", bestPrice ? "true" : "false");
pageParams.put("lp", lp);
pageParams.put("hp", hp);
pageParams.put("cid", categoryId);
pageParams.put("prov", providerId);
pageParams.put("order", order);
pageModel.setPageParams(pageParams);
pageModel.setRequestUrl("/list");
当然,page.ftl :
<#if pageModel.totalPage gt 1>
<div class="page-nav">
<#if pageModel.currentPage gt 1>
<a href="${pageModel.requestUrl}?pageNumber=<#if pageModel.currentPage-1 gt 0>${pageModel.currentPage-1}<#else>1</#if>&pageSize=${pageModel.pageSize}<#list pageModel.pageParams?keys as key>&${key}=${pageModel.pageParams.get(key)}</#list>"
class="ib pre"><< Previous</a>
</#if>
<#if pageModel.currentPage == 1>
<span class="cur">1</span>
<#else>
<a href="${pageModel.requestUrl}?pageNumber=1&pageSize=${pageModel.pageSize}<#list pageModel.pageParams?keys as key>&${key}=${pageModel.pageParams.get(key)}</#list>"
class="ib">1</a>
</#if>
<#if pageModel.currentPage gt 4>
<span class="dot">...</span>
</#if>
<#list 0..4 as index >
<#if index == 2 && pageModel.currentPage gt 1 && pageModel.currentPage lt pageModel.totalPage>
<span class="cur">${pageModel.currentPage}</span>
<#else>
<#if (pageModel.currentPage-2+index gt 1) && (pageModel.currentPage-2+index lt pageModel.totalPage) >
<a href="${pageModel.requestUrl}?pageNumber=${pageModel.currentPage-2+index}&pageSize=${pageModel.pageSize}<#list pageModel.pageParams?keys as key>&${key}=${pageModel.pageParams.get(key)}</#list>"
class="ib">${pageModel.currentPage-2+index}</a>
</#if>
</#if>
</#list>
<#if pageModel.totalPage - pageModel.currentPage gte 4>
<span class="dot">...</span>
</#if>
<#if pageModel.currentPage == pageModel.totalPage>
<span class="cur">${pageModel.currentPage}</span>
<#else>
<a href="${pageModel.requestUrl}?pageNumber=${pageModel.totalPage}&pageSize=${pageModel.pageSize}<#list pageModel.pageParams?keys as key>&${key}=${pageModel.pageParams.get(key)}</#list>"
class="ib">${pageModel.totalPage}</a>
</#if>
<#if pageModel.currentPage != pageModel.totalPage>
<a href="${pageModel.requestUrl}?pageNumber=<#if pageModel.currentPage+1 gt pageModel.totalPage>${pageModel.totalPage}<#else>${pageModel.currentPage+1}</#if>&pageSize=${pageModel.pageSize}<#list pageModel.pageParams?keys as key>&${key}=${pageModel.pageParams.get(key)}</#list>"
class="ib next">Next >></a>
</#if>
</div>
</#if>
只需要维护这一个page就可以了
标签:
原文地址:http://my.oschina.net/cwzhang/blog/412758