jsp分页代码有问题

<%@pagecontentType="text/html;charset=GBK"%><%@pagelanguage="java"import="java.io.*,j... <%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.io.*,java.sql.*,java.util.*" %>
<html>
<head>
<title>
xianshi
</title>
</head>
<body>
<%!
int pageSize =3;
int pageCount=0;

%>
<%
Connection conn=null;
ResultSet rs;
try{
conn=DriverManager.getConnection("proxool.db");
String sql="select * from tbl_type";
Statement st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=st.executeQuery(sql);
rs.last();
int rowCount=rs.getRow();
out.println(rowCount +"\n");
pageCount=(rowCount % pageSize==0)? (rowCount/pageSize):(rowCount/pageSize+1) ;

out.println(pageCount);
int showPage=1;
%>
<%
String goToPage=request.getParameter("showPage");
if(goToPage == null){
goToPage= "1";
}
try{
showPage=Integer.parseInt("goToPage");
}catch(NumberFormatException ex){
showPage=1;
}
if(showPage <=1){
showPage=1;
}
else if(showPage >= pageCount){
showPage=pageCount;
}
int position =(showPage-1)*pageSize+1;
rs.absolute(position);
%>
<table width="103">
<tr>
<td>编号</td>
<td>序号</td>
<td>名称</td>
</tr>
<%
int i=1;
while(i<pageSize && !rs.isAfterLast())

{%>
<tr>
<td height="31"><%=rs.getString("id")%></td>
<td><%=rs.getString("name")%></td>
</tr>
<%rs.next();i++ ;%>
<%}%>
</table>
<table>

<tr>
<td><a href="xianshi.jsp?showPage=1"> 首页 </a> </td>
<td><% if(showPage<pageCount)
{%>
<a href="xianshi.jsp?showPage=<%=showPage+1%>">下一页</a><% }%>
</td>
<td><% if(showPage>1)
{%>
<a href="xianshi.jsp?showPage=<%=showPage-1%>">上一页</a><% }%></td>
<td><a href="xianshi.jsp?showPage=<%=pageCount%>">末页</a></td>
<td>共<%=pageCount %>页</td>
<td> 第<%=showPage%>页 </td>
</tr>
</table>
<%
rs.close();
st.close();
conn.close();
}catch(Exception ex)
{
ex.printStackTrace();
} %>
</body>
</html>

大侠 帮看看问题出在哪??? 总页数, 分页的URL 都对,就是页面内容没有随着页数的改变而改变??
展开
 我来答
落曳声痕
推荐于2016-03-13 · 超过27用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:74万
展开全部
还是用javaBean比较好,显示与处理分离,明了。
给你一个,通用的,不过要把其对象放到Session中,切记啦
public class Pagination {
private int currentPage; //当前页
private int totalPages; //总页数
private int pageRows; //每页记录数
private int totalRows; //总记录数
private int pageStartRow; //每页开始记录
private int pageEndRow; //每页结束记录
private boolean hasPreviousPage; //是否有上一页
private boolean hasNextPage; //是否有下一页
private List<Object> totalList; //要分页的数据
//初始化页面信息
public void initPage(List<Object> totalList,int pageRows){
this.totalList = totalList;
this.pageRows = pageRows;
this.totalRows = totalList.size();
this.currentPage = 1;
// 计算总页数
if ((totalRows % pageRows) == 0) {
totalPages = totalRows / pageRows;
if (this.totalRows == 0)
this.totalPages = 1;
} else {
totalPages = totalRows / pageRows + 1;
}
// 默认无上一页
this.hasPreviousPage = false;
// 判断是否有下一页
if (currentPage == totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
// 默认第一页开始的记录数为1
this.pageStartRow = 1;
// 确定第一页结束的记录数
if (totalRows < pageRows) {
this.pageEndRow = totalRows;
} else {
this.pageEndRow = pageRows;
}
}
//获取当前页信息
public List<Object> getCurrentPageList(){
if(currentPage*pageRows<totalRows){
pageEndRow=currentPage*pageRows;
pageStartRow=pageEndRow-pageRows;
}else{
pageEndRow=totalRows;
pageStartRow=pageRows*(totalPages-1);
}
List<Object> pageList=new ArrayList<Object>(pageEndRow-pageStartRow+1);
if(totalRows!=0){
for(int i=pageStartRow;i<pageEndRow;i++){
pageList.add(totalList.get(i));
}
}
return pageList;
}
//获取上一页信息
public List<Object> getPreviousPageList(){
currentPage = currentPage - 1;
if (currentPage < 1){
currentPage = 1;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//获取下一页信息
public List<Object> getNextPageList(){
currentPage = currentPage + 1;
if (currentPage > totalPages)
currentPage = totalPages;
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//获取指定页信息
public List<Object> getAppointPageList(int currentPage){
this.currentPage = currentPage;
if (currentPage > this.totalPages)
this.currentPage = this.totalPages;
if (currentPage < 1)
this.currentPage = 1;
if (this.currentPage > 1) {
this.hasPreviousPage = true;
} else {
this.hasPreviousPage = false;
}
if (this.currentPage < this.totalPages) {
this.hasNextPage = true;
} else {
this.hasNextPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
// 返回当前页
public int getCurrentPage() {
return currentPage;
}

// 返回每页记录数
public int getPageRows() {
return pageRows;
}

// 返回当前页开始记录
public int getPageStartRow() {
return pageStartRow;
}

// 返回当前页结束记录
public int getPageEndRow() {
return pageEndRow;
}

// 返回总页数
public int getTotalPages() {
return totalPages;
}

// 返回总记录数
public int getTotalRows() {
return totalRows;
}

// 返回是否有上一页
public boolean isHasPreviousPage() {
return hasPreviousPage;
}

// 返回是否有下一页
public boolean isHasNextPage() {
return hasNextPage;
}
}
程序那点事
2009-03-17 · TA获得超过6140个赞
知道大有可为答主
回答量:3253
采纳率:59%
帮助的人:1338万
展开全部
给你一个真正的分页的吧
你的感觉很乱
我的这个的话 没写在javabean中 你可以自己做
首先要定义四个变量:
int pageSize:每页显示多少条记录
int pageNow:希望显示第几页
int pageCount:一共有多少页
int rowCount:一共有多少条记录
说明:
pageSize是指定的 pageNow是用户选择的
rowCount是计算出来的 该计算式为
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
(技巧:
数据库插入:
insert into 表名(字段1,2,。。。)select 字段1,2,...from 表名
)
查询语句
select top pageSize字段名列表from表名where id not in
(select top pageSize*(pageNow-1)id from 表名)
以我们前面的users表为例,显示第二页,该查询语句就是:
select top 3 * from users where userId not in(select top 3 userId from users)
(select top 3 userId from users):选出这个表的前三条 前面再选三条

<h1>用户信息列表</h1>
<%
//定义四个分页会用到的变量
int pageSize=3;
int pageNow=1;//默认显示第一页
int rowCount=0;//该值从数据库中查询
int pageCount=0;//该值是通过pageSize和rowCount
//接受用户希望显示的页数(pageNow)
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null){
//接收到了pageNow
pageNow=Integer.parseInt(s_pageNow);
}
//查询得到rowCount
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System","sa","");
Statement sm=ct.createStatement();
ResultSet rs=sm.exeuteQuery("select count(*) form users ");
if(rs.next()){
rowCount=rs.getInt(1);
}
//计算pageCount
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
//查询出需要显示的记录
rs=sm.exeuteQuery("select top "+pageSize
+" * from users where userId not in(select top "
+pageSize*(pageNow-1)+" userId from users) ");
%>
//显示

<table border="1">
<tr><td>用户ID</td><td>用户名字</td><td>密码</td><td>电邮</td><td>级别</td></tr>
<%
while(rs.next()){
%>

<tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr>
<%}%>
</table>
<%
//上一页
if(pageNow!=1){
out.println("<a href=wel.jsp?pageNow="+(pageNow-1)+">上一页</a>");
}
//显示超链接
for(int i=1;i<=pageCount;i++){
out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>");
}
//下一页
if(pageNow!=pageCount){
out.println("<a href=wel.jsp?pageNow="+(pageNow+1)+">下一页</a>");
}
%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蒿飇睢菡
2019-06-17 · TA获得超过3659个赞
知道大有可为答主
回答量:3075
采纳率:26%
帮助的人:180万
展开全部
所有的用户信息
用户id
用户名
用户密码
用户性别
用户住址
真实姓名
用户年龄
${u.userid
}
${u.username
}
${u.password
}
${u.sex
}
${u.age
}
${u.address
}
${u.realname}
首页
${value}
下一页
上一页
上一页
下一页
末页
${index}
${index}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王_快乐小仙子
2009-03-28
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
先赋一个初始值ResultSet rs=null;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天街夜雨
2009-03-17 · TA获得超过641个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:663万
展开全部
这样写真乱...用个javabean啊...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式