如何在JSP里面做个分页显示,就象本论坛的这样?

nanfang 2003-09-12 01:58:42
请大家多提思路或者提供代码。
...全文
135 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
onizuka5211 2004-02-24
  • 打赏
  • 举报
回复
我的想法是把分页写道两个bean中,一个超类,一个子类,以后每个子类,都继承这个超类,不知好不好呢,
一把吉他 2004-02-24
  • 打赏
  • 举报
回复
好东西当然要分享啊!

看我的:

经典分页程序
jsp+javaBean

http://www.52free.com/bbs/index.php?act=ST&f=8&t=148&st=0#entry298

如果数据库不同只需修改javaBean中的驱动即可,页面显示数可以自己控制。
yanxibang 2004-02-21
  • 打赏
  • 举报
回复
package hzdq.fdjc.Common;

import java.sql.*;
import java.util.*;

/**
* Title:分页
* Description:
* Copyright: Copyright (c) 2004
* Company:
* author:颜喜班
* @version 1.0
*/
public class SplitPager
{
/*
* _sql_str:传入的sql语句
* _total_records: 总记录数目
* _pageSize: 每页显示的记录数目
* _page: 所分的逻辑页数
*/
private Connection con=null;
private Statement stmt=null;
private ResultSet rs=null;
private ResultSetMetaData rsmd=null;
private String _sql_str;
private int _total_records;
private int _pages;
private int _pagesize;
public void setConnection(Connection con)
{
this.con=con;
if (this.con == null)
System.out.println("Failure to get a connection!");
else
System.out.println("Success to get a connection!");
}
public void initialize(String sqlStr,int pageSize)
{
this._sql_str=sqlStr;
this._pagesize=pageSize;
try{
stmt=this.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(this._sql_str);
rsmd=rs.getMetaData();
if (rs!=null)
{
rs.last();
this._total_records = rs.getRow();
rs.first();
this._pages = (this._total_records - 1) / this._pagesize + 1;
}
}
catch(SQLException e){System.out.println(e.toString()); }
}
public Vector getPage(int ipage){
Vector vData=new Vector();
int n=ipage;
int m=0;
m=(n-1)*this._pagesize+1;
try{
if (rs!=null)
{
rs.absolute(m);
for(int i=0;i<this._pagesize;i++){
String[] sData=new String[rsmd.getColumnCount()];
for(int j=0;j<rsmd.getColumnCount();j++)
{
sData[j]=rs.getString(j+1);
}
if (sData==null)
{
break;
}
vData.addElement(sData);
rs.next();
}
}
rs.close();
stmt.close();
}
catch(SQLException e){System.out.println(e.toString()); }
return vData;
}
public int getPages()
{
return this._pages;
}
public int getTotalRecords()
{
return this._total_records;
}

}

YZ815 2003-10-09
  • 打赏
  • 举报
回复
up
realby 2003-10-09
  • 打赏
  • 举报
回复
up
kui 2003-10-09
  • 打赏
  • 举报
回复
在新版本的JSPStudio中,通过向导,只要输入一个文件名和选择数据源,自动产生所有数据库操作和表格分页显示,下载地址:ftp://162.105.80.43/incoming/

例如:输入文件名:TEST,并通过ODBC选择数据源,自动产生如下6个文件:
TEST.java
TESTAction.java
TESTDAO.java
TESTForm.java
TEST.jsp
TESTOut.jsp

代码见:
http://expert.csdn.net/Expert/topic/2228/2228055.xml?temp=.1732599
seaman0916 2003-10-09
  • 打赏
  • 举报
回复
http://www.hnitline.com/bbs/dispbbs.asp?boardID=18&ID=807

目前最好的分页技术

思想确实很好,看看就知道了!
lynx1111 2003-09-19
  • 打赏
  • 举报
回复
http://search.csdn.net/expert/topic/54/5409/2002/9/29/1064726.htm
wkliangsdqd 2003-09-18
  • 打赏
  • 举报
回复
学习,收藏!
drogan 2003-09-15
  • 打赏
  • 举报
回复
good
seaman0916 2003-09-13
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2247/2247252.xml?temp=.5408136
seaman0916 2003-09-13
  • 打赏
  • 举报
回复
数据量大! 也就是说记录多时!
seaman0916 2003-09-13
  • 打赏
  • 举报
回复
dooluby(蓝色) 也得很好!

只是当数据大是,每显示一次就要重新查找一次数据库,太慢了! 我也在找相关的!
xinshou1979330 2003-09-13
  • 打赏
  • 举报
回复
我有个JSP分页的例子楼主要的话发短信息留EMAIL

nanfang 2003-09-13
  • 打赏
  • 举报
回复
多谢各位康慨提供代码!!!!
chenxb1980 2003-09-12
  • 打赏
  • 举报
回复
public class ListView implements Serializable
{
public static final LogUtils Log = new LogUtils(ListView.class);
protected int rowCount; //总行数
protected int pageSize = 10; //每页显示的行数
protected int pageCount; //总页数
protected int currentPageIndex = 1; //当前页号
protected int beginIndex; //检索的第一条纪录行号
protected int endIndex; //检索的最后一条纪录行号
protected DataBean data; //当前行数据
protected List listDatas; //所有数据集合
protected String lastSql; //最后一次查询的字符串
protected boolean isPaged; //分页标记
protected boolean isUpdate; //数据修改、删除标记
protected boolean isInsert; //数据增加标记
protected boolean isDetail; //数据明细标记


dooluby 2003-09-12
  • 打赏
  • 举报
回复
给你一个JSP+SQL Server 2000的分页例子,其他的数据库大同小异。

<%@ page contentType="text/html;charset=gb2312"%>
<%
//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.Statement sqlStmt; //SQL语句对象
java.sql.ResultSet sqlRst; //结果集对象
java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句
int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage;
int i,j,k; //设置一页显示的记录数
intPageSize = 5; //取得待显示页码
strPage = request.getParameter("page");
if(strPage==null){
//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
} else{
//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1; }
//装载JDBC-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//设置数据库连接字符串
strCon = "jdbc:odbc:Test_DB";
//连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"sa","");
//创建SQL语句对象
sqlStmt = sqlCon.createStatement();
//获取记录总数
strSQL = "select count(*) from guestbook";
sqlRst = sqlStmt.executeQuery(strSQL);
//执行SQL语句并取得结果集
sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前
intRowCount = sqlRst.getInt(1);
sqlRst.close(); //关闭结果集

//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
//调整待显示的页码 if(intPage>intPageCount) intPage = intPageCount;
//设置获取数据SQL语句
strSQL = "select name,email,body from guestbook";
//执行SQL语句并取得结果集
sqlRst = sqlStmt.executeQuery(strSQL);
//将记录指针定位到待显示页的第一条记录上
i = (intPage-1) * intPageSize;
for(j=0;j<i;j++) sqlRst.next(); %>

<html>
<head>
<title>JSP数据库操作例程 - 数据分页显示 - JDBC-ODBC</title>
</head>

<body>
<p align=center>jdbc-odbc留言版</p>
<table border="1" cellspacing="0" cellpadding="0" width=600 align=center>
<%
//显示数据
i = 0;
while(i<intPageSize && sqlRst.next()){ %>
<tr>
<td>姓名:<%=sqlRst.getString(1)%></td>
<td>邮件:<%=sqlRst.getString(2)%></td>
</tr>
<tr>
<td colspan=2><%=sqlRst.getString(3)%></td>
</tr>
<% i++; } %>
<tr>
<td colspan=2 align=center>
第<%=intPage%>页 共<%=intPageCount%>页
<%if(intPage<intPageCount){%>
<a href="mssql.jsp?page=<%=intPage+1%>">下一页</a><%
}
%>
<%if(intPage>1){%>
<a href="mssql.jsp?page=<%=intPage-1%>">上一页</a><%
}
%>
</td>
</tr>
</table> </body>
</html>

<%
//关闭结果集
sqlRst.close();
//关闭SQL语句对象
sqlStmt.close();
//关闭数据库
sqlCon.close();
%>

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧