我用这个标签来分页,通过传参数到action 返回list集合到前台。
显示数据条数有问题。
我的第一页分页正常,我的pagesize是20.点第二页却显示40条数据?第三页就是60条。最后慢慢又减少,...40...减少到最多20条,为什么。
<pg:pager url="${hmh}/bbs/get_bbs.action" items="${totalNumber}" index="center" 
  maxPageItems="20"  maxIndexPages="5"  scope = "request" isOffset = "<%=false%>"   
export = "pageOffset,currentPageNumber=pageNumber" 
 
>一直有点不清楚他这个标签如何控制每页显示多少。maxPageItems="20"    而我的数据得到的list最多是20条,我都看底层打印了的,size 为20,不知道为什么前台就是显示的数据数目是不正确的。诡异了,头大了。有没知道情况的人,谢谢。

解决方案 »

  1.   

    哦,我刚打印了 list 显示40,60,80... 之前只是打印了startElements endElements 而这个是正常的。确实list大小有问题。难道是HibernateCallback的问题???下面是控制台其中打印的。
    Hibernate startElements=20
    Hibernate endElements=40
    List返回集合大小为:40而我的相应层的代码:public List<Bbs> Get_Bbs(final int startElements,final int endElements,final int boardid) {

    List gt= (List) getHibernateTemplate().execute(new HibernateCallback(){
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
        
       
         Query query = session.createQuery("from Bbs ch where ch.boardid ='"+boardid+"'order by ch.bbsid desc");
        System.out.println(startElements);
        System.out.println(endElements);
        
         query.setFirstResult(startElements);
         query.setMaxResults(endElements);
          
         System.out.println("Hibernate startElements="+startElements);
         System.out.println("Hibernate endElements="+endElements);
         System.out.println("List返回集合大小为:"+ query.list().size());
         return query.list();
       
      
        }   
       });  

    return gt;
    }
      

  2.   

    我的开始
    query.setFirstResult(startElements);
    query.setMaxResults(endElements);之差绝对固定式 20 的,但是为什么list会大于这个呢????
      

  3.   

    query.setMaxResults(endElements);参数的意义是每页显示的数据条数你没搞懂这个参数的意义。如果每页二十条。那么query.setMaxResults(20);