传智播客--itcastbbs(五)


(2009-04-28 22:39:16)
标签:

it

 

1. 主题列表的分页显示

 页码(当前页前后7页);总页数;总主题数;上一页;下一页;首页;尾页;
 跳转到指定的页码;go
 
 所有的信息都需要准备;
 当前显示页的主题信息:  
 
 1.1 简单地显示出页码的效果
   1,2,3 共3页,共54条记录 [首页][上一页][下一页][尾页]
   <inputtype="text"><inputtype="button"> 
 
 1.2 分析要实现上述效果,需要哪些?
    === 页码的显示
     <forEach begin="1"end="${titlePageNum}" var="i">
     </forEach>
  === 总页码数 ${titlePageNum}
  === 总记录数 ${titleItems}
  === 首尾页 ${i} 
   -----Forum.showForum 来准备所有的数据;增加一个页码参数
    /Forum.do?method=showForum&id=46&pageNum=${i} &{i}
    1,${currentPage+/-1}, ${totalPageNum}
   -----将上述所有关于页码的信息放在一个PageBean中
    page.items--- 主题数目;
    page.currentPage,page.totalPageNum
   -----写出PageBean : Page
    totalPageNum,totalItems, currentPageNum,items(这页的数据,List) 
    --===---后面增加
    pageSize---使用常量PAGE_SIZE或使用配置文件中参数,暂时先使用常量,放在PageBean中;   
   ----Forum.showForum
    获取参数,封装成PageBean    
    totalPageNum= (totalItems + pageSize - 1) / pageSize;
    
    每页的第一条记录
    firstResult= (pageNum-1) * pageSize;
   -----一般不在Action中运算Page, 在业务层中处理,修改了一个方法
    findTopicByForum
    PagefindTopicByForum( Forum forum, int pageNum); // 返回一页的数据
    在这里面完成刚才Action所分析的功能
    Action中之需要调用这个方法获取一个Page对象,并存入request即可;
   
    Service中需要2个数据,从DAO中获取
    (1)当前页的数据列表:List
    (2)总页数 -- 可以单独写一个DAO方法;也可以在(1)中返回这个数据;
    (3)使用(2)中第2中方法,需要将返回结果封装成对象:QueryResult
     Listitems, totalItems;
     并使用它们增加一个构造方法;
     这样进一步修改DAO.findTopicsByForum(Forumforum)
     返回值为这个QueryResult对象;
     注意返回总记录数时,先返回Number型,再转换为intValue
     因为驱动程序不同,可能返回的是long或int,但是他们都是Number;
    (4)修改DAO -> Service -> Action;
     主要修改Service中的代码并简单优化;
     Action增加对pageNum的异常处理
    (5)当前页码的处理
     颜色改变;加粗字体,不显示超链接
    (6)第一页不写上一页页;最后一页不显示下一页;
     currentPageNumgt1    显示上一页
     currentPageNumlt totalPageNum  显示下一页      
    (7)去第几页
     οnclick="gotoPage(document.getElementByIdx('txtPageNum').value"
     functiongotoPage(pageNum) {
      window.location.href="/Forum?method=showForum&id=46&pageNum="+ pageNum;
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值