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>
页:
[1]