ssh实现查询分页

可以使用现有的空间<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager"%>。

不过我写了一个公共的类来实现分页:

public class PageBean {
	private List list;// 要返回的某一页的记录列表
	private int allRow;// 总记录数
	private int totalPage;// 总页数
	private int currentPage;// 当前页
	private int pageSize;// 每页记录数

	private boolean isFirstPage;// 是否为第一页
	private boolean isLastPage;// 是否为最后一页
	private boolean hasPreviousPage;// 是否有前一页
	private boolean hasNextPage;// 是否有下一页

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

	public int getAllRow() {
		return allRow;
	}

	public void setAllRow(int allRow) {
		this.allRow = allRow;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	/**
	 * 以下判断页的信息,只需要getter方法(is方法)即可
	 */
	public boolean isFirstPage() {
		return currentPage == 1;// 如是当前页是第一页
	}

	public boolean isLastPage() {
		return currentPage == totalPage;// 如果当前页是最后一页
	}

	public boolean isHasPreviousPage() {
		return currentPage != 1;// 只要当前页不是第一页
	}

	public boolean isHasNextPage() {
		return currentPage != totalPage;// 只要当前不是最后一页
	}

	/**
	 * 初始化分页信息
	 */
	public void init() {
		this.isFirstPage = isFirstPage();
		this.isLastPage = isLastPage();
		this.hasPreviousPage = isHasPreviousPage();
		this.hasNextPage = isHasNextPage();
	}

	/***************************************************************************
	 * 
	 * 计算总页数,静态方法,供外部直接通过类名调用 pageSize 每页记录数 allRow 总记录数
	 * 
	 * @return 总页数
	 */
	public static int counTotalPage(final int pageSize, final int allRow) {
		int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
				/ pageSize + 1;
		return totalPage;
	}

	/***************************************************************************
	 * 
	 * 计算当前页开始记录 pageSize 每页记录数 currentPage 当前第几页
	 * 
	 * @return 当前页开始记录号
	 */
	public static int countOffset(final int pageSize, final int currentPage) {
		final int offset = pageSize * (currentPage - 1);
		return offset;
	}

	/***************************************************************************
	 * 
	 * 计算当前页,若为0或者请求的URl中没有"?page=",则用1代替 page传入的参数(可能为空,即,则返回1)
	 * 
	 * @return 当前页
	 */
	public static int countCurrentPage(int page) {
		final int curPage = (page == 0 ? 1 : page);
		return curPage;
	}
}

从数据库获得是数据位list的,然后就转为pagebean.list

PageBean pageBean = new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setCurrentPage(currentPage);
pageBean.setAllRow(allRow);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();
在JSP页面上调用action中传过来的数据:利用struts标签iterator,对用应的bean属性的名称<s:property value="属性的名字"/>

<s:iterator value="pageBean.list"></s:iterator>

这样就可以在jsp页面上进行显示数据了;

然后就是上一页、下一页、第一页、最后一页的控制,

xxx?page=<s:property value="%{pageBean.currentPage-1}(上一页)

传递到action,并且带上page的参数。

实例下载地址:点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Me-hao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值