`
bei-jin-520
  • 浏览: 108588 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用displaytag进行分页显示

阅读更多

要格式化显示数据,又写不好自己的分页程序。不如试试displaytag标签。displaytag即可以进行几十万条的数据同时加载进行分页又可以定制自己的样式。当然它还有许多其他的功能,因为使用时间不长。我也不太清楚.这里只讲它的分页功能就好了。

要用displaytag标签进行动态数据分页,在WEB工程的LIB里加入displaytag.jar。然后在JSP页面里加入这句代码就可以使用displaytag标签了。

<%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>

要分页显示肯定得有这么几步是少不了的

1.工具类或者分页类。2.准备数据。3.绑定数据的JSP

实现思路:可以自己写个包装类用于你要进行分页显示的BEAN。也就是上面提到的第一步类似一个工具类.源码如下:

import org.displaytag.decorator.TableDecorator;

public class Wrapper extends TableDecorator {

    public String getDeptId(){
     Demo organise = (Demo)getCurrentRowObject();
     String demoid = organise.getId();
     if(demoid==null){
      demoid="";
     }
        StringBuffer htmlStr = new StringBuffer();
        htmlStr.append("<div align='center'><a href='../organization/deptEdit.htm?parentId=");//在这里加//一句这样的代码可以对单条记录进行修改。
        htmlStr.append(organise.getId());
        htmlStr.append("'>");
        htmlStr.append(demoid);
        htmlStr.append("</a></div>");
        return htmlStr.toString();
    }

}

2.准备数据:

在ACTION里或者controller取得业务逻辑层传递过来的数据并绑定在request作用域里。

  HttpSession session = (HttpSession)request.getSession(true);
  String pageListSize = (String)session.getAttribute("PAGE_LIST_SIZE");
  String type = request.getParameter("operation");

  if (pageListSize == null) {
   session.setAttribute("PAGE_LIST_SIZE", "10");
   pageListSize = "10";
  }
  if(type.equals("zx")){
  List list = dataSource.getData();
  request.setAttribute("operation","zx");
  request.setAttribute("list",list);
  }
  if(type.equals("gd")){
  List list = dataSource.getGlist();
  request.setAttribute("list",list);
  request.setAttribute("operation","gd");
  }
  request.setAttribute("pageListSize",pageListSize); 

  return new ModelAndView(getCustomUrl());

3.绑定数据

  <c:if test="${operation == 'gd'}">
  <c:if test="${!empty list}">
   <div style="height:680;width:100%;overflow:auto;">
   <table bgcolor="#6F9DD9" border="0" width="100%" cellpadding="0"
    cellspacing="0">
    <tr>
    <td colspan="4" align=center bgcolor=red>
    工单列表
    </td>
    </tr>
    <tr>
     <td>
      <display:table id="dept" name="list" pagesize="${pageListSize}" class="table_changecolor" style="width:100%" cellspacing="1"
       requestURI="${path}/user/list.htm" decorator="com.ultrapower.test.web.Wrapper">
              <tr  class="even">
              <td>
       <display:column title="ID" property="deptId"
        sortable="true" style="width:30%;cursor: hand" class="content_back1"/>
        </td>
        </tr>
                 </table>
       <input type="button"  value=" 返回 "
       onclick="invokeIndxe();"/>
   </div>
  </c:if>
  </c:if>

自此就可以使用displaytag进行应用的分页显示了。

  • Demo.zip (355.9 KB)
  • 下载次数: 1012
分享到:
评论
26 楼 q380100484 2012-07-23  
好像都没有jar包的呀
25 楼 aishangtao 2009-07-29  
它这个是在前台进行分页的, 如果是上千条数据的话, 会不会很慢啊。
24 楼 苏茂林 2009-03-05  
dzq2008 写道
呵呵,好东西,不用再为分页发愁了!

23 楼 sunhaitao123 2009-03-04  
把数据全部加载会有用sql分页那样快吗
22 楼 duduli 2009-03-01  
确实内存的开销会很大的,如果有1000个人同时访问,然后每个都有几万条数据,服务器能受得了吗?
21 楼 oyprunner 2009-02-28  
bei-jin-520 写道
我写的这种是动态获取分页对象的就是继承了TABLE包装类。其实DISPLAY分页有多种解决方案。这次我又写了个实现接口的可以只在分页时查询数据库。不用一次性把数据全部读取出来,那样太占资源了。


期待早点传上来,先谢谢分享了
20 楼 oyprunner 2009-02-28  
英文确实很重要!
19 楼 oyprunner 2009-02-28  
bei-jin-520 写道
oyprunner 写道
最近 我也用了这个组件
感觉开发是快了些 方便了 很多
不过 如果数据量大的话 性能能否还是这样 值得怀疑
毕竟 它是一次性把数据全部取出来的 (难道有另外的技术  什么 内分 外分的 …… 迷糊了  我也不清楚 )

可能以后新的版本 会做这方便的处理

所以 有些公司专本做这些组件出来

大哥你看过官方文档吗?值得怀疑!!!


不好意思,我还没看过,最近做毕业设计
涉及到分页,看到网上说的用组件可以,
而且到displaytag官网上去下了包,网站全英文的,第一次这样在英文网站找东西
还满吃力的,不过渐渐的感觉好点,没注意到帮助文档

听大哥这么一说,再去看看。
18 楼 bei-jin-520 2009-02-26  
oyprunner 写道
最近 我也用了这个组件
感觉开发是快了些 方便了 很多
不过 如果数据量大的话 性能能否还是这样 值得怀疑
毕竟 它是一次性把数据全部取出来的 (难道有另外的技术  什么 内分 外分的 …… 迷糊了  我也不清楚 )

可能以后新的版本 会做这方便的处理

所以 有些公司专本做这些组件出来

大哥你看过官方文档吗?值得怀疑!!!
17 楼 bei-jin-520 2009-02-26  
引用
hantsy 写道一般应该不用写任何包装类。。。除非你是要修改它的表。

可能你没听懂我的意思,我不是只是拿来用就可以。
16 楼 hantsy 2009-02-26  
bei-jin-520 写道
我写的这种是动态获取分页对象的就是继承了TABLE包装类。其实DISPLAY分页有多种解决方案。这次我又写了个实现接口的可以只在分页时查询数据库。不用一次性把数据全部读取出来,那样太占资源了。

一般应该不用写任何包装类。。。除非你是要修改它的表。
15 楼 hantsy 2009-02-26  
niwei 写道
楼主是否用过extremeComponents,然后与displaytag做过比较呢,我看springside2.0里用的就是extremeComponents,不过改进了一下,不是一次全部取,可以分页从后台取数据,再实际应用中我倒觉得分页取的情况更多一点吧。

extremeComponents的开发团队都已经放弃了extremeComponents的开发,这个组件已经很多年没有更新了,从开发角度看,和struts 1一样,除非维护,否则extremeComponents早就应该丢到垃圾筒去了。
他们已经开发了新的组件jmesa(http://code.google.com/p/jmesa/)代替extremeComponents。
而displaytag的开发一直在进行。
从现在的角度考虑,displaytag和jmesa是首选。
14 楼 hantsy 2009-02-26  
oyprunner 写道
最近 我也用了这个组件
感觉开发是快了些 方便了 很多
不过 如果数据量大的话 性能能否还是这样 值得怀疑
毕竟 它是一次性把数据全部取出来的 (难道有另外的技术  什么 内分 外分的 …… 迷糊了  我也不清楚 )

可能以后新的版本 会做这方便的处理

所以 有些公司专本做这些组件出来

谁说一次取出来?有没有看过它的文档?
它同样支持多次取出,这个在早先的两次版本中就实现了。。。从设计上比extremeComponent要好很多。
13 楼 niwei 2009-02-25  
楼主是否用过extremeComponents,然后与displaytag做过比较呢,我看springside2.0里用的就是extremeComponents,不过改进了一下,不是一次全部取,可以分页从后台取数据,再实际应用中我倒觉得分页取的情况更多一点吧。
12 楼 bei-jin-520 2009-02-25  
有时间在传上来大家分享!呵呵
11 楼 bei-jin-520 2009-02-25  
我写的这种是动态获取分页对象的就是继承了TABLE包装类。其实DISPLAY分页有多种解决方案。这次我又写了个实现接口的可以只在分页时查询数据库。不用一次性把数据全部读取出来,那样太占资源了。
10 楼 oyprunner 2009-02-25  
最近 我也用了这个组件
感觉开发是快了些 方便了 很多
不过 如果数据量大的话 性能能否还是这样 值得怀疑
毕竟 它是一次性把数据全部取出来的 (难道有另外的技术  什么 内分 外分的 …… 迷糊了  我也不清楚 )

可能以后新的版本 会做这方便的处理

所以 有些公司专本做这些组件出来
9 楼 51Edu 2009-02-24  
bei-jin-520 写道
不用担心效率的问题我测试过一次性加载几十万条数据没问题。

几十万跳,有点恐怖。
8 楼 freedomstyle 2009-02-22  
    我去试试了  呵呵  谢谢楼主分享啊!!
7 楼 zdonking 2009-01-19  
bei-jin-520 写道
不用担心效率的问题我测试过一次性加载几十万条数据没问题。


一次性内存里装几十万数据...只为了一个列表分页查询。

相关推荐

    displayTag分页插件及配置文档

    改装后的displayTag分页插件,解决中文问题,内置帮助文档和示例文件及jar包,比较好用,如果不满足你的需求请不要砸砖 补充: csdn附件不能修改,jsp+servlet分页时有bug,请注意查询所有的serlvet不支持带参数,即...

    displaytag下拉框动态分页

    该文档里面详细说明在我们使用displaytag标签的时候,在表格的页脚显示一个当前界面显示多少条的动态改变(这个是和[第1-10项 共19项] [首页/上页]1, 2[下页/尾页] [显示条数]显示在一行的),table会根据当前选择的数据...

    DAO模式与分页显示

    DAO模式与分页显示,提供displaytag,pager-taglib 分页查询

    displaytag1.1.jar 强大标签

    displaytag1.1显示排序分页导出自动标签

    displayTag demo

    displaytag 标签 用于显示list数据以及分页功能

    JAVA分页完美解决方案

    我的方案是用两个TAG完成分页显示数据和页码,一个TAG(displaytag)专门显示数据,一个TAG(PagesSearchTag.java)专门显示页码,可以满足所有的分页要求,在JSP文件中调用这两个TAG既可完成分页任务。页码格式类似...

    DisplayTag合集

    一个很好的表格显示框架,支持自动分页。 里面包括源码和jar包和使用说明

    java显示标签:displaytag

    diaplaytag是java开发中一个非常好用的表格显示标签,可以大大减少Web界面的开发工作量,它支持样式,动态连接,分页显示,显示数据的排序,将表格数据导出成特定的文档格式等,嵌套表格等常用的功能。

    displaytag-1.0-src.zip_displaytag-1.2-bin_displaytag-bin_excel_排

    从数据库获得数据,显示到页面。功能相当强大,支持直接生成excel等格式,支持排序等,但似乎不支持分页显示

    displaytag-1.1-bin.zip_Table_display_displaytag_displaytag-bin

    类似Table,可以显示数据库中的数据,可分页、排序。很灵活。

    DisplayTag小例子

    可以自动分页 有样式选择 不用下载其他资源 一个应用displayTag的例子

    java实现分页

    java web实现页面的自动分页显示功能,同时还可也导处格式Excle\XML等简单方便使用。

    displaytag文件

    支持页面分页,外观漂亮,有五种样式,可以切换显示风格,用法简单,直接将list作为一个属性

    V512工作室Java web的ppt

    第17章 讲解DAO设计模式和分页显示,同时还讲解了Displaytag与Pager标记库。 第18章讲解与Java Web编程有关的主要的字符集和编码方法,还讲解了如何应对Java Web编程中出现的各种乱码问题。 第19章 讲解Java Web应用...

Global site tag (gtag.js) - Google Analytics