谁有好的SSH的分法~是不是一定在分页bean把属性给初始化?

解决方案 »

  1.   

    主要有两种分页的方法
    第一种是取出所有的数据放在list里面,然后对list操作
    第二种是用sql语句操作,比如mysql 有 limit关键字,查询从第多少到第多少的数据
    hibernate其实封装的就是第二种的方法
    你做分页的话,做个分页器bean,主要存储你分页要用的一些字段,比如firstPage,lastpage,pagesize,pageNumber,pageTotal等等,大致就这样了
    pageBean其实和你的数据库的持久类一样,在hibernate里面做findbypage(随便的方法名),加入这个pagebean,也就是查询你要的数据的时候,加入查询的条件(大小==size,firstindex==从哪里开始查)
      

  2.   

    为了方便扩展
    可以写个分页的实体类和分页方法1》》》》》》实体类:package org.jb.common.util;import java.util.ArrayList;
    import java.util.List;/**
     * 
     * @author hailong.liu
     */
    public class PageResult<E> {
    private String orderBy = "";
    private String sort = "asc";
    private List<E> list = new ArrayList<E>(); //查询结果
    private int pageNo = 1; //实际页号
    private int pageSize = 15; //每页记录数
    private int recTotal = 0; //总记录数

    public List getList() {
    return list;
    }
    public void setList(List<E> list) {
    this.list = list;
    }
    public int getPageNo() {
    return pageNo;
    }
    public void setPageNo(int pageNo) {
    this.pageNo = pageNo;
    }
    public int getPageSize() {
    return (0==pageSize)?10:pageSize;
    }
    public void setPageSize(int pageSize) {
    this.pageSize = pageSize;
    }
    public int getRecTotal() {
    return recTotal;
    }
    public void setRecTotal(int recTotal) {
    this.recTotal = recTotal;
    }
    public int getPageTotal() {
    int ret = (this.getRecTotal() - 1) / this.getPageSize() + 1;
    ret = (ret<1)?1:ret;
    return ret;
    }
    public int getFirstRec()
    {
    int ret = (this.getPageNo()-1) * this.getPageSize();// + 1;
    ret = (ret < 1)?0:ret;
    return ret;
    }
    public String getOrderBy() {
    return orderBy;
    }
    public void setOrderBy(String orderBy) {
    this.orderBy = orderBy;
    }
    public String getSort() {
    return sort;
    }
    public void setSort(String sort) {
    this.sort = sort;
    }

    }分页方法:@SuppressWarnings("unchecked")
    public void listByPage(String hql, PageResult pageResult) {
    if (null==hql){
    return ;
    }
    Query query = this.getSession().createQuery(hql);
    query.setFirstResult(pageResult.getFirstRec());
    query.setMaxResults(pageResult.getPageSize());
    List ret = query.list();
    pageResult.setList(ret); String queryString = "";
    if (hql.toUpperCase().indexOf("SELECT") != -1) {
    int i = query.getQueryString().toUpperCase().indexOf("FROM");
    queryString = "Select count(*) " + hql.substring(i,hql.length());
    } else {
    queryString = "Select count(*) " + hql;
    }
    // 去掉ORDER BY 的部分
    int j = queryString.toUpperCase().lastIndexOf("ORDER");
    if (j!=-1){
    queryString = queryString.substring(0, j);
    }
    Query cquery = this.getSession().createQuery(queryString);
    cquery.setCacheable(true);
    int recTotal = ((Integer)cquery.iterate().next()).intValue();
    pageResult.setRecTotal(recTotal);
    }
      

  3.   

    js分页挺好的。
    pagationPage  ,好像jquery的,,不错。
    还有很多