12.改ページ
9865 ワード
基本的な改ページの考え方1、4つの変数を定義します。
2、すべてのレコードをrsに読み込む
3、総記録数rs_を計算する。talk
4、総ページ数を計算する
5、現在のページ番号を取得する
6、ページ番号に従って、該当するページ番号の最初のレコードにポインタを向ける
7、記録があるかどうかを判断し、forを使って現在のページの記録を循環表示する
int page_persize=2;//
int page_total=0;//
int page_now=1;//
int rs_total=0;//
2、すべてのレコードをrsに読み込む
String sql="select * from userlist ";
ResultSet rs = connDbBean.executeQuery(sql);
3、総記録数rs_を計算する。talk
rs.last();//
rs_total=rs.getRow();//
4、総ページ数を計算する
if (rs_total % page_persize==0)
page_total=rs_total/page_persize;
else
page_total=rs_total/page_persize+1;
5、現在のページ番号を取得する
try{
if (!(request.getParameter("page_now")==null || request.getParameter("page_now").equals("")))
page_now=Math.min(Math.abs(Integer.parseInt(request.getParameter("page_now"))),page_total);
}catch(java.lang.NumberFormatException e){
out.print(" "+e);
}
if (page_now==0) page_now=1;
6、ページ番号に従って、該当するページ番号の最初のレコードにポインタを向ける
rs.absolute((page_now-1)*page_persize+1);
7、記録があるかどうかを判断し、forを使って現在のページの記録を循環表示する
rs.previous();
for(int i=1;i<=page_persize;i++)
{
if (!rs.next()) break;//
}
8、ページ番号ナビゲーションを表示する(方式が多様で、もはや説明しない)<p align=center>
<%
// , 。
out.print(" "+rs_total+" ");
if (page_total>1){
out.print(" "+page_now+" ");
out.print(" "+page_total+" ");
if(page_now!=1) {
out.print("<a href=?page_now=1> </a> ");
out.print("<a href=?page_now="+(page_now-1)+"> </a> ");
}
if(page_now!=page_total){
out.print("<a href=?page_now="+(page_now+1)+"> </a> ");
out.print("<a href=?page_now="+page_total+"> </a> ");
}
%>
<form action="?" method="post"><!-- -->
<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center"> :
<input name="page_now" type="text" size="3" />
<input name="submit" type="submit" value=" " />
</div></td>
</tr>
</table>
</form>
<% } %>
</p>
例1:<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>read</title>
</head>
<body style="text-align:center">
<a href="add.jsp">add</a>
<form method='post' action="search.jsp">
<input type="text" name="str">
<input type="submit" value="search">
</form>
<table border="1" cellspacing="0" cellpadding="3">
<tr>
<td>id</td>
<td>title</td>
<td>content</td>
<td> </td>
<td> </td>
</tr>
<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=dataBase;user=sa;password=sa;";
Connection conn = DriverManager.getConnection(connectionUrl);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//
int page_persize=2;//
int page_total=0;//
int page_now=1;//
int rs_total=0;//
//
String sql="select * from dataTableName";
ResultSet rs=stmt.executeQuery(sql);
//
rs.last();//
rs_total=rs.getRow();//
//
if (rs_total % page_persize==0)
page_total=rs_total/page_persize;
else
page_total=rs_total/page_persize+1;
//
try{
if (!(request.getParameter("page_now")==null || request.getParameter("page_now").equals("")))
page_now=Math.min(Math.abs(Integer.parseInt(request.getParameter("page_now"))),page_total);
}catch(java.lang.NumberFormatException e){
out.print(" "+e);
}
if (page_now==0) page_now=1;
//
rs.absolute((page_now-1)*page_persize+1);
//
for(int i=1;i<=page_persize;i++)
{
%>
<tr>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><a href="del.jsp?id=<%=rs.getString("id")%>"> </a></td>
<td><a href="edit.jsp?id=<%=rs.getString("id")%>"> </a></td>
</tr>
<%
if (!rs.next()) break;//
}
//
rs.close();
stmt.close();
conn.close();
%>
</table><br>
<%
// , 。
out.print(" "+rs_total+" ");
if (page_total>1){
out.print(" "+page_now+" ");
out.print(" "+page_total+" ");
if(page_now!=1) {
out.print("<a href=?page_now=1> </a> ");
out.print("<a href=?page_now="+(page_now-1)+"> </a> ");
}
if(page_now!=page_total){
out.print("<a href=?page_now="+(page_now+1)+"> </a> ");
out.print("<a href=?page_now="+page_total+"> </a> ");
}
%>
<form action="?" method="post">
<!-- -->
<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center"> :
<input name="page_now" type="text" size="3" />
<input name="submit" type="submit" value=" " />
</div></td>
</tr>
</table>
</form>
<% } %>
</body>
</html>
例2:javabeanを使用しました。<%
int page_persize=2;//
int page_total=0;//
int page_now=1;//
int rs_total=0;//
String sql="select * from userlist";
ResultSet rs=connDbBean.executeQuery(sql);
rs.last();//
rs_total=rs.getRow();//
if (rs_total % page_persize==0)
page_total=rs_total/page_persize;
else
page_total=rs_total/page_persize+1;
try{
if (!(request.getParameter("page_now")==null || request.getParameter("page_now").equals("")))
page_now=Math.min(Math.abs(Integer.parseInt(request.getParameter("page_now"))),page_total);
}catch(java.lang.NumberFormatException e){
out.print(" "+e);
}
if (page_now==0) page_now=1;
rs.absolute((page_now-1)*page_persize+1);
for(int i=1;i<=page_persize;i++)
{
//
if (!rs.next()) break;//
}
rs.close();
connDbBean.closeStmt();
connDbBean.closeConn();
// , 。
out.print(" "+rs_total+" ");
if (page_total>1){
out.print(" "+page_now+" ");
out.print(" "+page_total+" ");
if(page_now!=1) {
out.print("<a href=?page_now=1> </a> ");
out.print("<a href=?page_now="+(page_now-1)+"> </a> ");
}
if(page_now!=page_total){
out.print("<a href=?page_now="+(page_now+1)+"> </a> ");
out.print("<a href=?page_now="+page_total+"> </a> ");
}
%>
<form action="?" method="post"><!-- -->
<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td><div align="center"> :
<input name="page_now" type="text" size="3" />
<input name="submit" type="submit" value=" " />
</div></td>
</tr>
</table>
</form>
<% } %>