当前位置: 代码迷 >> Java Web开发 >> JSP分页显示,该如何处理
  详细解决方案

JSP分页显示,该如何处理

热度:91   发布时间:2016-04-17 10:29:47.0
JSP分页显示
大侠们早上好!
小弟我想在JSP页面中分页显示出来从数据库获取的数据,比如:

1/10页 总数:10页 下拉框 首页 上一页 下一页 尾页

名字 年龄 性别  
张三 10 男
李四 10 女
王五 10 男
每页显示三行,数据是从数据库里获取的,Bean类和Dao类已经写好,获取的方法是:
public ArrayList<Student> getStudent() {
String sql = "select * from Student";
ArrayList<Student>items=new ArrayList<Student>();
我想循环输出显示数据,每页只显示三行,分十页。
JSP页面该怎样写?请大侠们帮忙!!

------解决方案--------------------
你是用的hibernate吧,那hibernate不是有自带的两个方法query.setFirstResult();query.setMaxResults();这不就很容易,你又不用写sql了
------解决方案--------------------
Java code
import java.util.List;import org.apache.struts2.ServletActionContext;import org.hibernate.HibernateException;import org.hibernate.Session;import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class Zmxpage  extends HibernateDaoSupport {    private int first;//从哪开始    private int pageSize;//一页存在多少数据    private String hql;//查询语句    private String hql1;        public String getHql1() {        return hql1;    }    public void setHql1(String hql1) {        this.hql1 = hql1;    }    /*     * ???磺Zmxpage z = new Zmxpage();     * z.getPages(1,10"from BeanName");     * List list = z.findByPage();     *///    分页方法    public void getPages(int currentPage,int pageSize,String hql)    {        this.first = (currentPage-1)*pageSize;        this.pageSize = pageSize;        this.hql = hql;    }        public List findByPage()    {        try {                       List result = (List)getHibernateTemplate().execute(                                new HibernateCallback()            {                public Object doInHibernate(Session sess)throws HibernateException                {                    List tmp = sess.createQuery(hql)                                                                  .setFirstResult(first)                            .setMaxResults(pageSize)                            .list();                    return tmp;                }            });                    return result;                       } catch (RuntimeException re) {                                     throw re;         }    }    public int gettotalPages()    {//获取总页数        try {                          List list = getHibernateTemplate().find("select count(*) "+hql);              int j=0;              j = ((Long)list.get(0)).intValue();              int i = 0;              if(j%pageSize==0) i = j/pageSize;              else i = j/pageSize+1;                            return i;                     } catch (RuntimeException re) {                        throw re;         }    }}
------解决方案--------------------

jsp页面
 <tr>
<td colspan="5" align="center">
<s:a href="rybxx!show?currentpage=1&name=%{name}&sex=%{sex}">首页|</s:a>
<s:if test="%{currentpage>1}">
<s:a href="rybxx!show?currentpage=%{currentpage-1}&name=%{name}&sex=%{sex}">上一页|</s:a>
</s:if>
<s:if test="%{currentpage<pages}">
<s:a href="rybxx!show?currentpage=%{currentpage+1}&name=%{name}&sex=%{sex}">下一页|</s:a>
</s:if>
<s:a href="rybxx!show?currentpage=%{pages}&name=%{name}&sex=%{sex}">尾页|</s:a>
当前${currentpage}页| 共 ${pages}页
</tr>

------解决方案--------------------
http://wenku.baidu.com/view/e32c9c946bec0975f465e275.html
数据库中有TopN这个东西,这里是oracle实现它的方式,自己看吧
  相关解决方案