在dao包的Hibernate类中
public List findAllSearch(int pageNo , int pageSize){
Session session = this.getSession() ;
Query query = session.createQuery("from test") ;
int firstResultIndex = pageSize*(pageNo-1) ;
query.setFirstResult(firstResultIndex) ;
query.setMaxResults(pageSize) ;
return query.list() ;
} 在servlet中调用
try {
request.setAttribute("all", new Hibernate().findAllSearch(1, 5));
} catch (Exception e) {
e.printStackTrace() ;
}finally{
HibernateSessionFactory.closeSession() ;
}在jsp中
  <body>
    This is my JSP page. <br>
    <jsp:include flush="true" page="servlet/Servlet"/>
    <table>
     <c:forEach items="${requestScope.all}" var="o">
     <tr>
     <td>${o.name }</td>
     </tr>
     </c:forEach>
    </table>
  </body>怎么控制上一页和下一页??

解决方案 »

  1.   

    List<Project> list = null;
    if (pageindex < 0 || pagesize < 0)
    return list;
    try {
    int startIndex = (pageindex - 1) * pagesize + 1;
    Query query = session.createQuery("from Project p  where p.statusFlag!=9 order by p.createtime desc");
    query.setFirstResult(startIndex - 1);
    query.setMaxResults(pagesize);
    list = query.list();
    } catch (DataAccessException e) {
    e.printStackTrace();
    list = null;
    }
    return list;
      

  2.   

    如果数据量不大的话可以把一次查到的数据全放在一个session里,然后从第二页开始重新写一个action专门用来处理分页(也就是处理点击上一页下一页的action),第一页我觉得肯定要放在页面的action里处理的!数据量大的话可以根据页码来分次查询数据库!