Display Tag的官方网站http://displaytag.sourceforge.net。

首先当然是要下载它的jar包了,这里可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包:apache的commons-lang和standard包,更多的辅助包可以在这里下载。

在web.xml下添加一个filter
    <filter>
        <filter-name>exportFilter</filter-name>
        <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
    </filter>

在jsp页面做一个引用:
<%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>

首先我们定义一个list
<%
 List test = new ArrayList( 6 );
 test.add( "Test String 1" );
 test.add( "Test String 2" );
 test.add( "Test String 3" );
 test.add( "Test String 4" );
 test.add( "Test String 5" );
 test.add( "Test String 6" );
 request.setAttribute( "test", test );
%>

当我们想在jsp页面上显示这个list时,我们只需要写一句话
    <display:table name="test" />
    display tag会自动生成一个table

如果list是从控制层抛出来的,name可使用EL表达式表示
    <display:table name="${test}" />

这是最简单的display tag的使用,我们可以给它加上样式等,也可以定义显示的列,下面的table显示复杂一些
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
  <display:column property="id" title="ID" class="idcol"/>
  <display:column property="name" />
  <display:column property="email" />
  <display:column property="description" title="Comments"/>
</display:table>

如果想要给它加个链接也很简单,下面的代码给name加了连接,并附带id参数,email也自动连接到mailto:XXX
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
  <display:column property="id" title="ID" class="idcol"/>
  <display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/>
  <display:column property="email" autolink="true"/>
  <display:column property="description" title="Comments"/>
</display:table>

下面介绍几个Display最常用的功能,更多功能请参考http://displaytag.homeip.net/displaytag-examples-1.1/。
1. 分页
    如果想对代码分页,只需在display:table标签中添加一项pagesize="每页显示行数",如
<display:table name="test" pagesize="10"/>

2. 对列排序
    display tag可对列进行排序,就是点击列名,对该列的数据进行排序。你只需对想要排序的列添加 sort="true" 就OK,如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数",可默认对指定的列排序。
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1">
  <display:column property="id" title="ID" class="idcol" sort="true"/>
  <display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/>
  <display:column property="email" autolink="true" sort="true"/>
  <display:column property="description" title="Comments"/>
</display:table>
   如果table有分页,Display Tag默认只对当前页进行排序,如果想对整个list排序,可以在display:table之间添加一段代码:
<display:setProperty name="sort.amount" value="list"/>

3. 导出数据
    在display:table中添加export="true",看看会出现什么!Display Tag默认会提供三种数据导出方式:CSV、Excel、XML 。
    另外Display Tag还可以导出为PDF格式,在http://prdownloads.sourceforge.net/itext/下载一个辅助包iText.jar,copy到lib目录下,然后在display:table之间添加一段代码:
<display:setProperty name="export.pdf" value="true"/>,大功告成。

4. Display Tag的属性设置
    前面所说的display:setProperty 是一种改变Display Tag属性的方法,但是在每个jsp中都要写太麻烦了。
    Display Tag中设置了很多默认的属性,它有一个专门的属性文件,是在它的jar包中的displaytag/properties/TableTag.properties
    想要改变它的默认属性,我们可以在WEB-INF/classes下新建一个文件displaytag.properties,仿照TableTag.properties中属性的格式设置需要修改的属性。
    TableTag.properties中的# messages中设置的是显示在页面上的提示信息。默认是英文的,我们可以把它改为中文的。不过这里只能使用unicode,就是说中文字符必须转换为 unicode码,这个可以使用jdk自带的native2ascii.exe进行转换。

5. 对特定列的导出控制, <display:column property="description" title="Comments" media="html" />media属性默认为all即是pdf,csv,html,对其可以定制导出文件。

6. 其它功能
    DisplayTag还有一些很实用的小功能,这里提两个。一个是对数据的Format,这是1.1版本添加的新功能,可以使用标签的方式格式化时间、数 字、字符串。比如日期,在需要格式化的column标签中添加format="{0,date,yyyy-MM-dd}",第一个参数为格式化的数据序 号,第二个参数是数据类型,数字为number,第三个参数为数据格式。
    另外一个功能是对table数据的合计功能。在table标签中添加 decorator="org.displaytag.decorator.TotalTableDecorator",然后在想要进行合计的数据列的 column标签中添加 total="true",该列就可以被计算总数了。但这个功能有个缺点,不能用在有分页的时候,它只能合计第一页的数据。

使用Display Tag相关推荐

  1. Display tag 使用

    Display Tag Lib是一个标签库,用来处理jsp网页上的Table,功能非常强,可以对的Table进行分页.数据导出.分组.对列排序等等,反正我在做项目时需要的功能它都给我提供了,而且使用起 ...

  2. Display Tag Lib

    2019独角兽企业重金招聘Python工程师标准>>> Display Tag Lib是一个标签库,用来处理jsp网页上的Table,功能非常强,可以对的Table进行分页.数据导出 ...

  3. 关于Bentley MicroStation Design (V8)格式中的tag的处理

    原文发布时间:2011-04-22 作者:叶子 tag(标签),是用户自定义的一些可以挂接到元素上的属性,这些可以被FME读出和写入(只能是DGNV8格式).另外,为了对用户自定义的属性提供一个值,标 ...

  4. 基于Servlet+JDBC+Bootstrap+MySQL+AJAX权限管理系统项目实战教程

    项目简介 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意 ...

  5. ViSP中识别AprilTag的C++实例代码解释

    VISP中识别AprilTag的C++实例代码解释 接着上一篇: VISP中识别AprilTag的C++实例代码与运行结果 先展示代码,一句一句解释吧 #include <visp3/detec ...

  6. ViSP中识别AprilTag的C++实例代码与运行结果

    VISP中识别AprilTag的C++可运行代码与运行结果 Introduction ***具体解释见下一篇:***VISP中识别AprilTag的C++实例代码解释 ***具体帮助开发文档下载:** ...

  7. J2EE开发之常用开源框架介绍

    From: http://blog.csdn.net/kuyuyingzi/article/details/38351231 主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当 ...

  8. 使用 AppFuse 的七个理由之二

    理由 1:测试 测试是在软件开发项目中很少被给予足够信任的一个环节.注意我并不是说在软件开发的一些刊物中没有得到足够的信任!很多文章和案例研究都给出了测试优先的开发方式和足够的测试覆盖面以提高软件的质 ...

  9. j2ee开发的各种技术

    主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层: 1)Hibe ...

最新文章

  1. bzoj 4871: [Shoi2017]摧毁“树状图”
  2. 单片机原理,单片机能做什么?
  3. 马斯克欢庆特斯拉年交付50万辆!国产三雄创新高,逼近其1/5
  4. DDD:DomainEvent、ApplicationEvent、Command
  5. seg代码配置的踩坑记录
  6. python 混淆矩阵_新手常见的5个Python错误
  7. 我的职业规划,大家给点意见吧!
  8. 【游戏周边】Unity,UDK,Unreal Engine4或者CryENGINE——我应该选择哪一个游戏引擎...
  9. 北斗卫星导航系统基础篇之(一)
  10. 数据分析案例2:股票均线策略(双均线策略收益率12.15%)
  11. dma读nand_使用DMA方式读取spi flash问题求助
  12. 关于淘客软件的那些事儿
  13. Java爬虫系列之二网页解析【爬取知乎首页信息】
  14. 《当程序员的那些狗日日子》四
  15. js 清除对象里的属性值为空的属性
  16. 计算机无法检测更新失败怎么办,Windows更新错误解决方案
  17. 推荐这三款亲测好用的ai工具
  18. kali Linux隐藏IP教程,Kali Linux 设置动/静态IP地址以及修改DNS
  19. 《流浪地球》后续,深度对话刘慈欣:地球只是太空中的一粒尘埃
  20. 学习笔记与练习 | SQL入门(三)| 复杂一点的查询

热门文章

  1. Power BI 关于日期显示格式的那些事儿
  2. 编码电位器c语言程序,360°编码电位器原理
  3. 你怎样看待男女军人接吻
  4. UserWarning: Possibly corrupt EXIF data.
  5. 在C:\Windows\Fonts下复制自己的字体
  6. LTE物理层概述(4)-- LTE时间帧及资源块
  7. 学习笔记40-哈希码(HashCode)
  8. 工作篇 之 简单聊下有关环信的 “坑” ...
  9. ORA-22922: 不存在的 LOB 值 处理方法
  10. Oracle数据库基本知识与SQL操作(1)