jsp分页这么写?
jsp分页这么写?帮忙给个例子,我学习下 谢谢
------解决方案--------------------1,初始化一些必要参数:
<%//变量声明
Integer fid=new Integer(-1);
int intPageSize; //一页显示的记录数
int intRowCount; // 记录总数
int intPageCount; //总页数
int intPage; // 待显示页码
java.lang.String strPage;
int i;
//设置一页显示的记录数
intPageSize= 8;
//取得待显示页码
strPage = request.getParameter( "page ");
if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage
<1) intPage = 1;
}
2,此处获得可逆的数据集合:(可逆:不但数据集合可以向下循环,并且需要向上循环,此处代码实现就不多说了)
ToolKit toolKit=new ToolKit();//连接数据库的一些设置和一些控制数据库方法
Connection cn = toolKit.openConn();//打开数据库连接,调用打开连接的方法
String sql = "Select * From FTMEDB.SUBJECT_SEGMENT where USERID=? order by DATEID desc ";
PreparedStatement sqlStmt=cn.prepareStatement(sql,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//这样写目的是为了获得可逆数据集合
sqlStmt.setString(1,(String)session.getAttribute( "id "));//通过使用封装好的PreparedStatement 类,添加条件。
ResultSet sqlRst = sqlStmt.executeQuery(); //执行SQL语句并获取结果集
3,开始获得一些分页所需要的数据,如:总页数,总记录数
if(sqlRst.next()){
sqlRst.last();//光标在最后一行
}
intRowCount = sqlRst.getRow();//获得当前行号,获取记录总数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;//记算总页数
if(intPage> intPageCount) intPage = intPageCount;//调整待显示的页码
%>
4,判断一些条件,记录数大于0时操作
if( intPageCount> 0){
sqlRst.absolute((intPage-1) * intPageSize + 1);//将记录指针定位到待显示页的第一条记录上
//显示数据
int j=(intPage-1)*intPageSize+1; //获得在总记录中当前页第一条记录的记录行号,然后循环体中循环递加就可以得到当页每个记录的记录号
i = 0;
while(i <intPageSize && ! sqlRst.isAfterLast()){
//循环获得sqlRst集合的数据
sqlRst.next();
i++;
j++;
}
}
//关闭结果集
sqlRst.close();
//关闭SQL语句对象
sqlStmt.close();
//关闭数据库
cn.close();%>
5,实现页面显示页码数和当前页码数和记录总数:
<form method= "POST " name= "form1 " action= "km_clsjdmain.jsp?filialesId= <%=fid%> " onsubmit= "return validation(this) " > <DIV align=right>
第
<%=intPage%> 页 共
<%=intPageCount%> 页
<%if( intPage> 1){%>
<a href= "km_clsjdmain.jsp?page= <%=intPage-1%> "> 上一页 </a> //需要传过去上个页码
<%}%>
<%if( intPage
<intPageCount){%>
<a href= "km_clsjdmain.jsp?page= <%=intPage+1%> "> 下一页 </a> //需要传过去下个页码
<%}%>
转到第:
<input type= "text " name= "page " size= "8 "> 页
<span>
<input class=buttonface type= "submit " value= "GO " name= "cndok ">
</span>
</DIV> </form>
6,当选择填写5步中的text文本进行查询时需要用到下面js语句:
<script type= "text/javascript ">
<!---
funct