最近安排一个小项目用到了BootStrap来做界面,分页也是必备的,但是找了一些BootStrap的分页插件感觉都不是太好用,很有可能是自己学的不太好,很长时间不太做前端界面了,也很生疏,接下来说下做的大体流程。
最终找到一个jQuery的分页插件:jQuery Pagination plugin
官网地址:

page-demo1.jpg
代码:
$(\'#pagination-demo\').twbsPagination({
totalPages: 35,
visiblePages: 7,
onPageClick: function (event, page) {
$(\'#page-content\').text(\'Page \' + page);
}
});
具体的流程不太了解,但是总体上是这样的,你不用管很多参数,只需要给后台传递page,也就是当前页就好,这个值在onPageClick事件中触发。
具体说下我是如何实现的:
插件的JS代码
$(\'#pagination-demo\').twbsPagination({ totalPages: totalCount, visiblePages: 5, href : \'${cxf}/wiki/list/{{number}}\', onPageClick: function (event, page) { $(\'#page-content\').text(\'Page \' + page); }});
这里需要几个参数:
对于totalPages我是这样处理的:
var totalCount = 20;// $.ajax({ async:false, type:\"get\", dataType : \"json\", url: \"${cxf}/wiki/queryAll\", success : function(data){ if(data.status ==200){ totalCount = data.data; totalCount = (totalCount % 10 == 0) ? totalCount / 10 : totalCount / 10 + 1; } } });
这里的逻辑是这样的:
Java后台的代码
@RequestMapping(value = \"list/{page}\")
public String listByPage(@PathVariable(value = \"page\") Integer start, Model model) {
Integer limit = pageSize;
if(start == null){
start = 1;
}
List list = wikiContentService.listByPages(Integer.valueOf(start), limit);
model.addAttribute(\"contents\", list);
return \"list\";
}
@RequestMapping(value = \"queryAll\")
@ResponseBody
public WikiResult queryAll(){
List list = wikiContentService.queryAll();
WikiResult result = new WikiResult();
result.setStatus(200);
result.setData(list.size());
return result;
}
最后的效果:

page-demo2.jpg
页面做的比较丑,不要见怪哟,自己对这块也不是很熟悉,在找资料的时候很多细节想不通,网上完整的代码也比较少,深刻的了解这里面的痛苦,自己虽然做出来了,但是效果还是不太好,肯定有更好的方法去实现,也请指教。
分页其实可以由前台和后台共同完成。
后台分页的逻辑就是:
必须要有3个参数:
我会这么处理这些数据:
total%pageSize == 0 ? total/pageSize : total%pageSize+1;
大概也就这么些东西吧,不太详细,先分享了。