友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
JSP入门教程(DOC格式)-第19部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
}
if (pageNo 《 1) {
pageNo = 1;
}
request。setAttribute(〃pageNo〃; pageNo);
这里 pageNo 代表当前的页码,如果没有传递 pageNo 参数,默认显示第一
页,为此我们在解析 request 中参数时要捕获对应的异常,如果没有输入
或者参数不是一个数字时 pageNo 就还是等于 1。
rs = state。executeQuery(〃select limit 〃 + (pageNo * 5 5) + 〃 5
* from bean〃);
这里我们拼了一个 sql 语句,用来从 (pageNo * 5 5)开始查询五个记录,
这条 sql 语句是 hsqldb 数据库特有的分页语句。
(pageNo * 5 5)用来计算 pageNo 这页第一条记录的行号,如果是第一
页 pageNo = 1,pageNo * 5 5 = 0。这里的行号跟咱们平常使用的数
组索引一样,0 代表第一个条记录,这样我们第一页就会显示 0;1;2;3;4
五条记录。如果是第二页 pageNo = 2,pageNo * 5 5 = 5,我们就会
在第二页看到 5;6;7;8;9 五条记录。这样正好与我们预期的一致。
rs = state。executeQuery(〃select count(*) from bean〃);
最后记得要获得数据库中一共有几条记录,我们要用它来计算一共要分几
页。
计算方法是 count / 5 + 1,比如现在有 39 条记录,39 / 5 + 1 = 8,
一共分 8 页。
135 / 148
…………………………………………………………Page 136……………………………………………………………
经过 BeanServlet。java 的处理,request 里有三个变量,list 保存当前页面显
示的结果,pageNo 代表当前页码,count 代表数据库中一共有多少条记录,这三
个变量会在 query。jsp 中作为原始数据显示最终的结果。
没有数据
循环显示 list 中当前页面的数据并不是新鲜事物,我们只是判断了 list 是否存
在,list 里是否有数据,如果这两个条件不符合,就显示“没有数据”作为提
示。
下面是重头戏了,仔细研究一下如何使用 pageNo (当前页码)和count (数据总
数)显示出分页工具栏,虽然只是进行简单的四则运算,但要是平常不注意训练
算法,想一次写好也不容易。
分页栏部分的代码如下:
'第一页'
'上一页'
'第一页'
'上一
页'
'下一页'
'最后一页'
'下一
页'
'最后一
页'
137 / 148
…………………………………………………………Page 138……………………………………………………………
首先我们从 request 中取得pageNo (当前页码)和count (数据总数)两个变量,
为了下面计算简便先用它俩计算出总页数 int pageCount = count / 5 + 1; 。
if (pageNo == 1) {
%》
'第一页'
'上一页'
'第一页'
'上一
页'
这段代码生成“'第一页' '上一页'”,如果pageNo == 1 说明当前页已经是第
一页了,这时既不需要'第一页'这个链接,也不需要'上一页'了。对应的“'下
一页' '最后一页'”处理方法与之类似,只是判断条件要写成pageNo ==
pageCount,判断是否已经是最后一页了。
中间页码部分直接使用循环就能输出来,循环从 i = 1 开始直到 i
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!