通用(可重用)的分页显示组件问题. 做成通用的,可以使用xml+xsl+msxml+javascript就是固定xml格式这样在数据生成时采用固定格式,使用统一的xsl这样就可以做出通用的分页 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在用的就是XML,但我想问题不在与此,而是不能将海量数据一次推倒客户端。这就需要一个PageControl来控制分页显示的一些基本数据,但不知该如何实现? 我自己写的有一个,拿去用吧,代码如下:/* * 分页显示的函数display() * 此函数相关的所有参数列表如下: * sql:查询记录的sql语句select * from xxx where xxx=xxx * sendrowlength:每一条记录的栏目数 * sendcurrentpage:要显示的页数 */ public String[][] display(String sql,String sendrowlength,String sendcurrentpage) throws IOException,SQLException {/* * 定义函数中的临时变量 */ int intcurrentpage;//要显示的页数(数字) String strcurrentpage=null;//要显示的页数(字符) int introwlength;//每条记录的栏目数(数字) String strrowlength=null;//每条记录的栏目数(字符) int introwcount;//总记录数(数字) String strrowcount=null;//总记录数(字符) int intpagecount;//总页数(数字) String strpagecount=null;//总页数(字符) //处理sql语句,保存到sql_count中 String sql_count="select count(*) from"+sql.substring(sql.indexOf("from")+4); //获取要显示的页数 strcurrentpage=sendcurrentpage; intcurrentpage=Integer.parseInt(strcurrentpage); //获取每条记录的栏目数 strrowlength=sendrowlength; introwlength=Integer.parseInt(strrowlength); //定义字符串数组,作为返回值。 //returnmessage[0][0]保存总记录数 //returnmessage[1][0]保存总页数 //returnmessage[2][0]保存返回的数组中记录的条数 //returnmessage[3][x]-returnmessage[x][x]保存每条记录的每一个栏目的值 String[][] returnmessage=new String[23][introwlength]; //实例化javabean:Conn,查询数据库,获取总记录数 Conn Conn=new Conn(); Connection conn=Conn.getConnect(); ResultSet rs=Conn.queryRS(conn,sql_count); introwcount=rs.getInt(1); strrowcount=Integer.toString(introwcount); //计算总页数 intpagecount=(introwcount+19)/20; strpagecount=Integer.toString(intpagecount); //查询数据库,把每一条记录的值保存到数组中 sql=sql+" limit "+(intcurrentpage-1)*20+",20"; rs=Conn.queryRS(conn,sql); int i=3; while (rs.next()) { int j=0; while (j++<introwlength) { if (rs.getString(j)!=null) { returnmessage[i][j-1]=rs.getString(j); } else { returnmessage[i][j-1]=""; } } i++; } Conn.dropRS(rs); Conn.dropConnect(conn); returnmessage[0][0]=strrowcount; returnmessage[1][0]=strpagecount; returnmessage[2][0]=Integer.toString(i-3); //返回值 return returnmessage; } 可以这样考虑:一个PageControl类实现分页计算一个JAVABEAN(值对象)保存查询结果,"使用"或"继承"PageControl,放在session中一个xml文件保存JAVABEN的结构,如字段名称、类型、中文名称,是否显示、 显示宽度、是否加链结、添加修改查询的链接URL、primarykey字段、字段值和 标题的关系(如显示0 - 男,1 - 女,而不只是显示0或1)等等一个xlst文件显示xml文件和javabean的数据一个XmlTransformer处理转换过程一个标签类xsltTag在jsp页面中用来显示分页数据这样将来只要修改xml文件,不必写任何代码,只要在jsp中用:<html:xslt xslt="xls文件名称"/> jquery选择span 问题 关于Math.round的问题 text型数据怎么在页面显示? 使用jacob,jsp中怎么响应ActiveX组件中的事件? 下拉列表 单项多值 怎么搞? 怎么校验ip地址是否属于某ip段范围里?? 急,急......,一个有关中文路径和中文文件的访问问题? 请教一个打开新页面的问题 数据库查询出现问题,好像找出的记录不太对,帮忙看看吧 struts2+hibernate相关问题 petstore中request.setAttribute和context.setattribute有什么区别? 在cmd编辑器中用java运行已编译的文件运行不成功怎样解决
这就需要一个PageControl来控制分页显示的一些基本数据,但不知该如何实现?
* 分页显示的函数display()
* 此函数相关的所有参数列表如下:
* sql:查询记录的sql语句select * from xxx where xxx=xxx
* sendrowlength:每一条记录的栏目数
* sendcurrentpage:要显示的页数
*/
public String[][] display(String sql,String sendrowlength,String sendcurrentpage) throws IOException,SQLException
{
/*
* 定义函数中的临时变量
*/
int intcurrentpage;//要显示的页数(数字)
String strcurrentpage=null;//要显示的页数(字符)
int introwlength;//每条记录的栏目数(数字)
String strrowlength=null;//每条记录的栏目数(字符)
int introwcount;//总记录数(数字)
String strrowcount=null;//总记录数(字符)
int intpagecount;//总页数(数字)
String strpagecount=null;//总页数(字符)
//处理sql语句,保存到sql_count中
String sql_count="select count(*) from"+sql.substring(sql.indexOf("from")+4);
//获取要显示的页数
strcurrentpage=sendcurrentpage;
intcurrentpage=Integer.parseInt(strcurrentpage);
//获取每条记录的栏目数
strrowlength=sendrowlength;
introwlength=Integer.parseInt(strrowlength);
//定义字符串数组,作为返回值。
//returnmessage[0][0]保存总记录数
//returnmessage[1][0]保存总页数
//returnmessage[2][0]保存返回的数组中记录的条数
//returnmessage[3][x]-returnmessage[x][x]保存每条记录的每一个栏目的值
String[][] returnmessage=new String[23][introwlength];
//实例化javabean:Conn,查询数据库,获取总记录数
Conn Conn=new Conn();
Connection conn=Conn.getConnect();
ResultSet rs=Conn.queryRS(conn,sql_count);
introwcount=rs.getInt(1);
strrowcount=Integer.toString(introwcount);
//计算总页数
intpagecount=(introwcount+19)/20;
strpagecount=Integer.toString(intpagecount);
//查询数据库,把每一条记录的值保存到数组中
sql=sql+" limit "+(intcurrentpage-1)*20+",20";
rs=Conn.queryRS(conn,sql);
int i=3;
while (rs.next())
{
int j=0;
while (j++<introwlength)
{
if (rs.getString(j)!=null)
{
returnmessage[i][j-1]=rs.getString(j);
}
else
{
returnmessage[i][j-1]=""; }
}
i++;
}
Conn.dropRS(rs);
Conn.dropConnect(conn);
returnmessage[0][0]=strrowcount;
returnmessage[1][0]=strpagecount;
returnmessage[2][0]=Integer.toString(i-3);
//返回值
return returnmessage;
}
一个PageControl类实现分页计算
一个JAVABEAN(值对象)保存查询结果,"使用"或"继承"PageControl,放在session中
一个xml文件保存JAVABEN的结构,如字段名称、类型、中文名称,是否显示、
显示宽度、是否加链结、添加修改查询的链接URL、primarykey字段、字段值和
标题的关系(如显示0 - 男,1 - 女,而不只是显示0或1)等等
一个xlst文件显示xml文件和javabean的数据
一个XmlTransformer处理转换过程
一个标签类xsltTag在jsp页面中用来显示分页数据这样将来只要修改xml文件,不必写任何代码,只要在jsp中用:<html:xslt xslt="xls文件名称"/>