`
jaychaoqun
  • 浏览: 29889 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

java 分页类

阅读更多

 java pojo..

package com.xyx.common;

import java.util.List;

/**
 * 分页
 * @author jaychaoqun
 *
 */
public class Pager {

	private int total_page;		//总页数
	private int total_count;	//总记录数
	private int current_page;	//当前页
	private int page_size;		//每页的数量
	private int first_page;
	private int pre_page;
	private int next_page;
	private int last_page;
	private boolean is_first;
	private boolean is_last;
	private List list;
	
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public int getTotal_page() {
		return total_page;
	}
	public void setTotal_page(int total_page) {
		this.total_page = total_page;
	}
	public int getTotal_count() {
		return total_count;
	}
	public void setTotal_count(int total_count) {
		this.total_count = total_count;
	}
	public int getCurrent_page() {
		return current_page;
	}
	public void setCurrent_page(int current_page) {
		this.current_page = current_page;
	}
	public int getPage_size() {
		return page_size;
	}
	public void setPage_size(int page_size) {
		this.page_size = page_size;
	}
	public int getFirst_page() {
		return first_page;
	}
	public void setFirst_page(int first_page) {
		this.first_page = first_page;
	}
	public int getPre_page() {
		return pre_page;
	}
	public void setPre_page(int pre_page) {
		this.pre_page = pre_page;
	}
	public int getNext_page() {
		return next_page;
	}
	public void setNext_page(int next_page) {
		this.next_page = next_page;
	}
	public int getLast_page() {
		return last_page;
	}
	public void setLast_page(int last_page) {
		this.last_page = last_page;
	}
	public boolean isIs_first() {
		return is_first;
	}
	public void setIs_first(boolean is_first) {
		this.is_first = is_first;
	}
	public boolean isIs_last() {
		return is_last;
	}
	public void setIs_last(boolean is_last) {
		this.is_last = is_last;
	}
	
	/**
	 * 分页处理
	 * @param current_page 当前页
	 * @param page_size 每页的数量
	 * @param total_count 总记录数
	 */
	public void paging(int current_page, int page_size, int total_count){
		this.current_page = current_page;
		this.page_size = page_size;
		this.total_count = total_count;
		
		if(current_page < 1){
			this.current_page = 1;
		}
		
		this.total_page = (this.total_count + page_size - 1)/page_size;
		this.first_page =1;
		this.last_page = total_page;
		
		if(this.current_page > 1){
			this.pre_page = this.current_page - 1;
		}else{
			this.pre_page = 1;
		}
		
		if(this.current_page < total_page){
			this.next_page = this.current_page + 1; 
		}else{
			this.next_page = total_page;
		}
		
		if(this.current_page <= 1){
			this.is_first = true;
		}else{
			this.is_first = false;
		}
		
		if(this.current_page >= total_page){
			this.is_last = true;
		}else{
			this.is_last = false;
		}
	}
	
}

 

数据访问dao,,使用分类类

/**
	 * pager query
	 * @param current_page
	 * @param page_size
	 * @return
	 */
	public Pager getStuList(int current_page,int page_size){
		Pager pager = new Pager();
		Session se = HibernateSessionFactory.getSession();
		int total_count = Integer.parseInt(se.createSQLQuery("select count(*) from t_student")
							.list()
							.get(0)
							.toString()
						);
		List list = se.createQuery("from Student")
		  .setMaxResults(page_size)
		  .setFirstResult((current_page-1)*page_size)
		  .list();
		pager.paging(current_page, page_size, total_count);
		pager.setList(list);
		HibernateSessionFactory.closeSession();
		return pager;
	}

 

这个dao方法返回一个分页对象,在action可以把分页对象射在request里,

public String stuInfoList() throws Exception{
		StudentDao dao = new StudentDao();
		Pager pager = dao.getStuInfoList(current_page, 10,class_id,ids);
		ServletActionContext.getRequest().setAttribute("pager", pager);
		return "stuInfoList";
	}

 

jsp显示:

				总数:[${requestScope.pager.total_count}]&nbsp;
				    当前页数:[${requestScope.pager.current_page}/${requestScope.pager.total_page}]&nbsp;
				    <s:if test="#request.pager.is_first == false">
					<a href="student!stuList.action?current_page=${requestScope.pager.first_page}">第一页</a> 
					<a href="student!stuList.action?current_page=${requestScope.pager.pre_page}">上一页</a>
					</s:if>
					<s:if test="#request.pager.is_last == false">
					<a href="student!stuList.action?current_page=${requestScope.pager.next_page}">下一页</a>
					<a href="student!stuList.action?current_page=${requestScope.pager.last_page}">最后一页&nbsp;</a>
					</s:if>

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics