《JSP入门教程(DOC格式)》第35章


就是我们看到的 1;2;3;4;5;6;7;8。既然pageNo 是从 1 开始算的,我们这里就 
也从 i = 1 起步了。如果在 i == pageNo 的时候,说明这是当前页,不需要链接, 
再加上一个 class=〃currentPage〃突出显示。
这个 select 下拉选择框的实现与上面相似,循环一下,遇到 i == pageNo 的时 
候就输出一个 selected 默认显示到 select 里,在选中想跳转的页码,点击下面 
的 go 按钮提交,跳转的效果也前面的超链接相同。
范例在 15…01。
15。2。 使用 jstl 改写分页
jsp 的代码让人眼晕,我们现在把分页中所有的 jsp 代码都换成 jstl 标签,这 
些我们要导入三个标签:core;fmt;functions。
139 / 148
…………………………………………………………Page 140……………………………………………………………
其中 core 提供循环标签(forEach)和判断标签(if),fmt 为我们格式化日期, 
functions 可以判断 list 的长度。
使用它们,下面显示记录结果的代码最终变成这幅模样。
{item。id}
{item。title}
没有数据
forEach 用来循环{list}中的内容,把每个元素保存到局部变量 item 中,供下 
面使用。
fmt:formatDate 是专门用于日期格式化显示的标签,相当于我们刚刚在 jsp 中 
使用的 SimpleDateFormat,pattern 部分设置期望显示的日期格式,最后它就会 
把 value 中的{item。addDate}显示成“2008 年 04…01”的格式。
c:if 也是一个非常常用的标签,它用来判断 test=〃〃中指定的 el 表达式的真假, 
如果是 true 就执行标签内部的内容,否则就跳过。很难受的是 jstl 中没有 else 
的部分,想实现 else 必须写两次 if 两次 test,很麻烦,但真就是 jsp 的局限。
fn:length(list)是 functions 标签部分为我们提供的扩展功能,因为 el 表达式 
中不能直接调用变量的方法,需要判断 list 长度的时候无法使用 list。size(), 
只能通过 fn:length(list)走一下弯路了,虽然它的功能十分有限,但也为我们 
提供了一条尽量不写 jsp 的途径,忍忍吧。
后面分页部分的功能随便帖一下就好,只是循环和判断的组合而已。
'第一页'
140 / 148
…………………………………………………………Page 141……………………………………………………………
'上一页'
'第一页'
'上一页'
{status。index}
{status。index}
'下一页'
'最后一页'
'下一页'
'最后一 
页'
{status。index}
这里可以看到 forEach 的另一种用法,begin=〃1〃从 i = 1 开始循环, 
end=〃{pageCount}〃会一直循环到 i
小说推荐
返回首页返回目录