java分页模板_Java web 分页 代码 模板

第一种类型的分页

%E5%88%86%E9%A1%B5%E7%95%8C%E9%9D%A21.png

enter description here

条件如下

最多显示5页(可动态调整)

后台返回总页数 pages

后台返回当前页 currentPage

当前页不能点击再次请求

第一页时上一页功能禁用

最后一页时下一页功能禁用

jsp 界面代码

1 根据pages 、 currentPage 计算界面要显示的从开始到结束的页码放入数组中

int currentPage = (Integer)request.getAttribute("currentPage");

int pages = (Integer)request.getAttribute("pages");

int showPages = 5;

int midValue = showPages/2;

int begin = 1;

int end = showPages;

//展示page的个数,默认五个

int showedPageCount = showPages;

if (pages > showPages){

//前面不够,从1开始,后面肯定够

if(currentPage - midValue <=0){

end = showPages;

} else if(pages - currentPage < midValue){//后面不够,前面肯定够

begin = pages - showPages + 1;

} else{//两个都够

begin = currentPage -midValue;

end = currentPage +midValue;

}

} else {

end = pages;

showedPageCount = pages;

}

ArrayList pageNumList = new ArrayList();

for(int i = 0;i < showedPageCount;i++){

pageNumList.add(begin+i);

}

%>

2 使用Bootstrap 分页插件布局分页效果

  • class="disabled"

    >

    href="/cd/fileIndex/keywordSearch?pageNumStr=${currentPage - 1}&keyword=${keyword}"

    href="#"

    aria-label="Previous">

    上一页

  • ${page}(current)

  • ${page}
  • class="disabled"

    >

    href="/cd/fileIndex/keywordSearch?pageNumStr=${currentPage + 1}&keyword=${keyword}"

    href="#"

    aria-label="Next">

    下一页

注意事项

需要导入JSTL 头引用

由于c:forEach 语法限制循环只能从1开始,因此不得已使用了数组pageNumList

相关链接

第二种类型的分页

%E5%88%86%E9%A1%B5%E7%95%8C%E9%9D%A22-2.png

enter description here

%E5%88%86%E9%A1%B5%E7%95%8C%E9%9D%A22-1.png

enter description here

%E5%88%86%E9%A1%B5%E7%95%8C%E9%9D%A22-3.png

enter description here

16f35f2305e36f7d0a7af07142688c3d.png

enter description here

条件如下

后台返回总页数 totalPage

后台返回当前页 targetPage

第一页和最后一页必须显示(没有除外)

当前页的前三页和后三页也需要显示

当前页前/后多于三页(除去首末页)的使用...代替

当前页不能点击

第一页时上一页a标签禁用

最后一页时下一页a标签禁用

1 根据totalPage 、 targetPage 计算界面要显示的从开始到结束的页码以及所有数据放入数组中

public List getPageShowList(int targetPage, int totalPage) {

int x = targetPage;

int m = totalPage;

List pageShowList = new ArrayList();

// 1_第1页 ,...2_第2页

if (x>5 && (m-x) >4) {

pageShowList.add(1 + "_第1页");

pageShowList.add("...");

for (int i = (x-3); i <= (x + 3) ; i++) {

pageShowList.add( (i) + "_第" + (i) + "页");

}

pageShowList.add("...");

pageShowList.add( (m) + "_第" + (m) + "页");

}else if (x<=5 && (m-x) >4) {

for (int i = 1; i <= x; i++) {

pageShowList.add(i + "_第" + (i) + "页");

}

pageShowList.add( (x+1) + "_第" + (x+1) + "页");

pageShowList.add( (x+2) + "_第" + (x+2) + "页");

pageShowList.add( (x+3) + "_第" + (x+3) + "页");

pageShowList.add("...");

pageShowList.add( (m) + "_第" + (m) + "页");

}else if (x>5 && (m-x) <=4) {

pageShowList.add(1 + "_第1页");

pageShowList.add("...");

for (int i = (x-3); i <= m; i++) {

pageShowList.add(i + "_第" + (i) + "页");

}

}else if (x <= 5 && (m-x) <= 4) {

for (int i = 1; i <= m; i++) {

pageShowList.add(i + "_第" + (i) + "页");

}

}

return pageShowList;

}

2 jsp界面拿出数据进行展示,具体的跳转处理流程需要根据项目需要

pageEncoding="UTF-8"%>

function jumpPage(currentPage,distance){

var stockName = document.getElementById("stockName");

var targetPage = 0;

targetPage = currentPage + (distance);

var url = '/Oracle-test/bid/bid/queryBidPageStock?targetPage='

+ targetPage +'&stockName='+stockName.value;

window.location.href = url;

}

function buttonClick(){

var stockName = document.getElementById("stockName");

var jumpPageInput = document.getElementById("jumpPageInput");

var url = '/Oracle-test/bid/bid/queryBidPageStock?targetPage='

+ jumpPageInput.value +'&stockName='+stockName.value;

window.location.href = url;

}

当前第${targetPage}页,共 ${totalPage}页

上一页

上一页

List pageList = (List)request.getAttribute("pageList");

if(pageList != null && pageList.size() > 0){

for (int i = 0 ; i < pageList.size(); i++){

String compstr = pageList.get(i);

if(compstr.contains("...")){

%>

...

} else {

String[] comStrings = compstr.split("_");

String pageNumStr = comStrings[0];

Integer targetPage = (Integer)request.getAttribute("targetPage");

if(pageNumStr.equals(""+targetPage)){

%>

} else {

%>

}

}

}

}

%>

下一页

下一页

到第 页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值