`
bei-jin-520
  • 浏览: 110578 次
  • 性别: 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实现分页

    2. **使用 Displaytag 分页** - 在 JSP 页面中,需要引入 Displaytag 的标签库,通过 `&lt;%@ taglib uri="http://displaytag.sf.net" prefix="display" %&gt;` 指令。 - 然后,使用 `&lt;display:table&gt;` 标签来展示数据。...

    DisplayTag分页及属性

    以下是对DisplayTag分页及属性的详细说明: 1. **DisplayTag 说明** DisplayTag 是一个基于 JSP 标签库,它通过提供一系列的自定义标签来简化在 JSP 页面中创建复杂的表格和分页操作。这些标签可以用来展示数据库...

    displaytag 一个后台管理的分页组件

    3. **分页**:DisplayTag 自带分页功能,可以轻松实现大量数据的分页显示,减轻服务器负担,并提供友好的用户体验。 4. **国际化**:支持多语言环境,可以方便地切换表格的头部标签和错误消息的语言。 5. **导出...

    displaytag,pager-taglib 分页包

    Displaytag是一个开源的表格和分页显示标签库,它提供了许多高级特性,如排序、分页、导出、样式控制等。使用Displaytag,开发者可以快速地在网页上创建出功能丰富的表格,而无需编写大量的HTML和Java代码。以下是...

    基于DisplayTag的分页及属性定制

    ### 基于DisplayTag的分页及属性定制 #### DisplayTag概述 DisplayTag是一个用于JSP页面的强大标签库,其主要功能在于处理表格数据,包括分页、数据导出、列排序等高级特性。DisplayTag是开源软件,可以从官方网站...

    displaytag分页jar包和使用说明

    3. **分页功能**:DisplayTag提供了强大的分页功能,用户可以根据需求配置每页显示的记录数,以及各种分页样式。 4. **易用性**:通过简单的XML配置文件,可以定制表格的行为,无需编写大量JavaScript或JSP代码。 5....

    hibernate+struts分页

    然后在JSP页面中使用DisplayTag进行分页显示: ```jsp &lt;%@ taglib prefix="display" uri="http://displaytag.sourceforge.net/tags" %&gt; ${pageSize}"&gt; &lt;!-- 表格内容 --&gt; ``` 三、整合Hibernate与Struts2...

    displaytag下拉框动态分页

    DisplayTag 是一个流行的 Java Web 应用程序标签库,它提供了一种简单的方式来处理表格数据的分页显示。本文将详细介绍如何使用 DisplayTag 实现下拉框动态分页功能,使得用户能够通过选择不同的选项来自定义每页...

    displayTag分页插件及配置文档

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

    Struts2 DisplayTag 分页

    3. **创建JSP页面**:在JSP页面中引入DisplayTag的标签库,然后使用`&lt;display:table&gt;`标签来显示数据并实现分页。设置`id`属性用于引用Action中的数据,`export`属性可以控制是否导出数据,`pagesize`属性定义每页...

    Struts2结合DisplayTag框架进行分页案例

    在JSP页面上,我们可以使用DisplayTag的标签库来显示数据并实现分页。例如,`&lt;display:table&gt;`标签用于定义表格,它可以接收一个集合作为数据源,通过`page`、`size`和`total`属性设置分页参数。同时,`...

    displaytag 分页模版资料 JSP

    在提供的资料中,"displaytag分页模版使用说明书.xls"可能包含了一份详细的使用指南,涵盖如何配置DisplayTag,如何在JSP页面中嵌入标签,以及如何实现各种高级功能。这份文档将指导开发者了解DisplayTag的配置文件...

    分页组件displaytag使用笔记

    - 使用DisplayTag的API进行程序化控制,例如在控制器中控制导出操作。 总结,DisplayTag是Java Web开发中一个强大的分页组件,其丰富的功能和易用性使其成为处理表格数据的理想选择。熟练掌握DisplayTag的使用,...

    DisplayTag分页

    DisplayTag分页技术的核心在于其能够自动处理大量数据,将这些数据按页显示,从而提高网页性能和用户体验。以下是关于DisplayTag分页的一些关键知识点: 1. **配置与引入**:首先,你需要在项目中引入DisplayTag库...

    displaytag 分页的简单例子(附源代码)

    这些属性分别启用了导出功能、列排序和分页显示。 `displaytagexample`压缩包中的源代码可能包含以下部分: 1. JSP 文件:展示如何使用DisplayTag标签实现分页表格。 2. 控制器类:处理分页请求并返回数据。 3. ...

    displayTag 分页

    1. **分页**:DisplayTag 自动处理数据的分页逻辑,只需要简单的配置,就能在页面上显示分页链接,用户可以轻松地浏览数据的各个页码。 2. **排序**:除了分页,DisplayTag 还支持表格内的数据排序,用户可以通过...

    分页用displaytag-portlet-1.1jar包

    Displaytag-portlet-1.1.jar 文件包含了DisplayTag Portlet 1.1的所有类和资源,是使用该库进行开发时需要引入的依赖。它提供了portlet环境下所需的特定功能,例如与portlet容器的集成,确保在portlet环境中正确显示...

    DAO模式与分页显示

    在“guestbook9”这个项目中,很可能是实现了一个留言板的功能,使用DAO模式来处理用户的留言存储和检索,同时使用DisplayTag或Pager-Taglib进行分页显示。具体实现可能涉及到以下几个步骤: 1. 设计DAO接口,例如`...

    displaytag标签的使用

    在配置方面,DisplayTag 使用了两个标签库:displaytag-1.1.tld 和 fmt.tld。displaytag-1.1.tld 是 DisplayTag 自身的标签,而 fmt.tld 标签库主要用于支持中文显示。如果你的项目使用的是 Servlet 2.4 之前的版本...

    displaytag及使用方法

    DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发人员处理表格展示时的一个强大工具。 DisplayTag的工作原理基于JSP标签库,它可以与任何Java持久层框架(如Hibernate、JPA)或数据访问技术(如JDBC)...

Global site tag (gtag.js) - Google Analytics