基于struts2的分页组件

Struts2分页组件实现及应用
本文详细介绍了基于Struts2的分页组件的实现过程,包括参数设定、初始化逻辑以及如何根据当前页码生成合理的前页和后页列表。通过实例展示了如何根据用户的操作动态调整页面导航,确保用户体验流畅。
基于struts2的分页组件
2011年03月27日
  自己写了一个分页
  凑合着用
  根据前2后3的设定:
  当选择了第5页,生成5的前2页和5的后3页,则indexList为: 345678
  当选择了第6页,则indexList为: 456789 package com.mtea.shop.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import com.mtea.shop.util.MathUtil; /** * 分页 * @author macrotea * 2011-3-27 */ public class Pager implements Serializable{ private static final long serialVersionUID = 1L; //默认页大小 private static final int DEFALT_PAGE_SIZE=5; //页码索引限制为5个 private static final int DEFALT_DIPSLAY_LIMIT=5; //前导限制2 private static final int DEFALT_PREV_LIMIT=2; //后续限制3 private static final int DEFALT_NEXT_LIMIT=3; //当前页码 private int pageNumber; //每页大小 private int pageSize; //总页数 private int pageTotal; //总记录数 private int rowTotal; //数据链表 private List dataList; //上一页 private int prevPage; //下一页 private int nextPage; //第一页 private int firstPage; //最后一页 private int lastPage; //页码索引链表 private List indexList; public static void main(String[] args) { Pager pager=new Pager(12,DEFALT_PAGE_SIZE,56,null); } public Pager() { super(); } public Pager(int pageNumber, int pageSize, int rowTotal, List dataList) { super(); this.pageNumber = pageNumber; this.pageSize = pageSize; this.rowTotal = rowTotal; this.dataList = dataList; extInit(); } public void extInit(){ /*handle pageTotal*/ this.pageTotal=MathUtil.selfCountByRemainder(rowTo tal, pageSize); /*handle nextPage&prevPage*/ if (this.pageTotal > 0 && this.pageTotal > this.pageNumber) { this.nextPage = this.pageNumber + 1; }else{ //当pageNumber太大,则下一页也设置为pageTotal this.nextPage=pageTotal; } if (this.pageNumber > 1&& this.pageTotal >= this.pageNumber) { this.prevPage = this.pageNumber - 1; }else{ //当pageNumber==1,则上一页也设置为1 this.prevPage=1; } /*handle firstPage&lastPage*/ firstPage=1; lastPage=pageTotal; /* handle indexList */ indexList = new ArrayList(); if (this.pageTotal >= this.pageNumber && pageNumber >= DEFALT_DIPSLAY_LIMIT) { // 处理中间情况:前2后3 for (int i = pageNumber - DEFALT_PREV_LIMIT; i = DEFALT_NEXT_LIMIT) { for (int i = pageNumber; i =DEFALT_DIPSLAY_LIMIT){ for (int i = 1; i getIndexList() { return indexList; } public void setIndexList(List indexList) { this.indexList = indexList; } @Override public String toString() { return "当前页=" + pageNumber + "\n每页行数=" + pageSize + "\n页总数=" + pageTotal + "\n行总数=" + rowTotal + "\n上一页=" + prevPage + "\n下一页=" + nextPage + "\nindexList:" +indexList; } }
  jsp页面: ">第一页 | ">上一页 ( "> ) ">下一页 | ">最后一页 (第页/共页 条记录 )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值