许多网站都文章或其他类内容的分页效果,初学者对于分页的开发有时只会用代码,而没有深入了解代码编写前的业务逻辑结构,掌握好这个,我想,任何的效果的分页都能自己解决……
1、确立jsp分页的内部逻辑结构:
现在就采用标准MVC模式下的分页做简单介绍。首先数据库里我们查询了一大堆的数据,列出来一个for循环(或者直接使用标签迭代输出<logic:interate),可能数据是一行一行,在一个表格标签中显示(或许是div的嵌套),不管怎么样,拿出来的的数据要规定显示多少行,超过了要分页,我们点击下一页,或者一个页码,将请求传递给servlet(action……)进行业务处理,将处理后得到的那几行数据(也就是点击的要显示的那一页数据)在服务器中转发到那个视图显示:
request.getRequestDispatcher("xxx.jsp").forward(request, response);
servlet接受http地址的参数,通过request接受,要传递的参数主要有查询的表名,要得到的该页的页数(查询的内容更细时应该传递更多的其它参数),这些参数用于构建sql语句查询数据库中该页的内容,如下是这个处理查询一页的java类:这里为了方便操作,在bean中也放入两业务逻辑处理方法,实际应用时应该将他们打包在一个专门的java类中:
package com.xxx.bean;
import java.sql.*;
import java.util.Vector;
import com.xxx.util.DB;
/*
* 肖力
* 2012-7-7
* 主要用于前台显示列表的分页
* */
public class Lists {
private static Connection con=null;//声明Connection引用
private static Statement stat=null;//声明Statement引用
private static ResultSet rs=null;//声明ResultSet引用
private static int span=6; //span每页显示多少行记录
private int curPage = 1; //当前页
private String msgsql; //
private int totalPage;
private int total;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getCurPage()
{//得到用户当前页
return this.curPage;
}
public void setCurPage(int curPage)
{//记录用户当前页
this.curPage = curPage;
}
public void setSql(String sql)
{
this.msgsql = sql;
}
public String getSql()
{
return this.msgsql;
}
public int getTotalPage()
{
return