`

displaytag七宗罪

    博客分类:
  • web
阅读更多
转载自:http://zhaodabao.spaces.live.com/blog/cns!255DE2984281A8BF!146.entry

Display Tag Lib是一个标签库,主要用来处理jsp网页上的Table,功能非常强,可以对的Table进行分页、数据导出、分组、对列排序等等,而且使用起来非常的方便,能够大大减少代码量.

记得有N多朋友问过分页问题如何可以更加方便、快速的处理,我的回答好象每次都是"DisplayTag",然后步骤相同的向朋友讲它有什么功能、能减少多少编码量、发文档、如何看war例子.以至于当时都想把操作过程录下来,来降低我的口水消耗量.

俗话说得好"路遥知马力",经过不断的使用,感觉DisplayTag"肾虚"了,问题与缺陷越来越多.现在还在使用它的朋友,如果已经放弃不用,那么就别浪费时间看这个了;如果还在使用的朋友,最好能看看我总结的DisplayTag罪状,倒能弥补些缺陷,不至于问题出现时记恨在下.呵呵.

1.中文翻页、排序问题:对于中文无法翻页、排序,最简单的办法是修改Tomcat下的server.xml文件.找到HTTP的 Connector标签,在里面添加一项URIEncoding="...",引号里面的内容取决于你的页面编码,比如可以是GBK,UTF-8等.

2.分页数据加载问题:DisplayTag的分页机制是这样的,它把所有的数据放入集合中,然后再进行分页处理.这样在数据量比较大的情况下,很容易造成性能下降或者内存超支等问题.目前解决方法有两个,一是在<displaytag>中增加两个属性:partialList="true"size="resultSize",每次只加再当前页数据.还有就是实现 org.displaytag.pagination.PaginatedList接口,自定义分页算法.个人推荐第二种,详细的实现方法可参考 DisplayTag 1.1所带的例子.
PS:第二种方法还不完善,DisplayTag中仍存在一些Bug.
(注:displaytag分页方案最大的问题, 没有设计成ui组件, PaginatedList查询不能够根据tag的属性来设定pagesize等属性,而只能依靠url参数,因此实际使用中常会需要action中设定分页参数)

3.导出中文Excel问题:当导出中文列表名和中文表格数据Excel时,会产生乱码现象.
解决:
更改配置文件 displaytag.properties,使用displaytag-export-poi.jar包.更改 export.excel.class=org.displaytag.export.ExcelView为 export.excel.class=org.displaytag.excel.ExcelHssfView,这样可以解决中文表格数据的问题.对于中文列表名乱码的问题,必须更改org.displaytag.excel.ExcelHssfView源代码:

old:
HSSFCell cell = xlsRow.createCell((short) colNum++);
cell.setCellValue(columnHeader);
cell.setCellStyle(headerStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);

new:
HSSFCell cell = xlsRow.createCell((short) colNum++);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(columnHeader);
cell.setCellStyle(headerStyle);

还有一种通过修改编码方式来支持中文的方法,那就是将org.displaytag.export.ExcelView.java中的 getMimeType()方法内容修改为return "application/vnd.ms-excel;charset=GB2312";但是这样修改后,导出速度将会非常慢,呵呵.

4.decorator内容无法导出问题和Html标签导出问题:如果对table进行了decorator,那么decorator后的内容将无法导出.目前此问题无法解决.所以最好不用decorator.如果显示的内容使用了html标签进行了修饰,那么它会将html标签一起导出.也是没有什么好的解决方法.

5.导出Excel兼容性问题:有时会出现兼容性问题,导出的Excel在Office 2003下打不开.
PS:导出问题不少,尤其是Excel.建议使用Apache POI自己实现Excel的导出.

6.同页面使用多个displayTag翻页问题.DisplayTag翻页时,页面上所有的displayTag元素都翻页.解决办法:对页面中的每个表格,先判断它的记录是否为0,如果为0则不使用DisplayTag.

7.未知Bug比较多:正式发布版本总是存在很多Bug.在1.1版本发布时,居然分页算法出现了明显Bug,无语.
分享到:
评论
1 楼 jy02411368 2008-08-02  
大哥 我现在想打印PDF可是也有错误 根本打印不成 不知道为什么 现在客户催的紧实在没办法了  这个是我邮箱加我一下可以吗357382027@qq.com

相关推荐

    displaytag-1.1 源码

    Displaytag是一个开源的Java库,专门用于创建复杂的表格和数据展示。在1.1版本中,它主要解决了在处理大数据分页时的问题,这使得它成为处理大量数据的理想选择,尤其是在Web应用程序中。这个源码包包含了一系列的...

    displaytag及使用方法

    DisplayTag是一个开源的Java库,专门用于在Web应用程序中创建复杂的表格。它提供了一系列的标签和功能,使得在JSP页面上展示数据变得更加容易和灵活。DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发...

    displaytag标签的使用

    DisplayTag 是一个强大的开源 JSP 标签库,专门用于处理网页中的表格展示。它提供了丰富的功能,如分页、数据导出、列排序和分组等,极大地简化了网页表格的开发工作。要使用 DisplayTag,首先需要从其官方网站...

    displaytag-1.2-bin&displaytag-1.2-src Java分页组件/插件

    DisplayTag是一个功能强大的Java开源分页和表格展示组件,它为Web开发提供了高效、灵活的解决方案。这个组件在Java社区中被广泛应用,因为其能够帮助开发者轻松实现数据的分页和排序,极大地提高了开发效率。 标题...

    displaytag的使用指南(全)

    ### DisplayTag 使用指南详解 #### 一、简介 DisplayTag 是一个开源的 Java Web 标签库,主要用于处理数据表格的展示与交互。它能够帮助开发者轻松地将 JavaBean 集合转换成 HTML 表格,并且支持排序、分页等功能...

    displayTag1.2

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格标签库,它为开发人员提供了一种高效、易用的方式来展示表格数据。DisplayTag 1.2是这个库的一个版本,包含了源码和对应的jar包,方便开发者进行查看和使用。 ...

    displaytag-1.2.jar

    displaytag-1.2.jar 显示标签

    displaytag详细用法(中文问题已解决)

    DisplayTag是一个开源的Java库,专门用于创建复杂的表格展示,尤其在Web应用中十分常见。这个压缩包包含了解决DisplayTag在处理中文显示时遇到的问题,以及一个专门用于编辑.properties文件的插件,使得配置更加方便...

    DisplayTag标签学习及使用

    DisplayTag 是一个强大的开源表格显示标签库,专为MVC模式设计,可以在Java Web应用程序中方便地处理数据展示。DisplayTag 提供了丰富的功能,包括表格分页、数据导出、列分组以及排序,极大地简化了开发人员的工作...

    displaytag的使用方法

    Displaytag 是一个开源的 JSP 标签库,专门用于创建数据表格,提供了一组易于使用的标签,可以实现复杂的表格功能,如分页、排序、导出等。在本文中,我们将详细讨论 Displaytag 1.1 版本的使用方法。 **一、...

    DisplayTag应用

    DisplayTag 是一个强大的开源标签库,专为 Java Web 开发设计,主要用于在 MVC 模式下展示表格数据。它的特点是功能丰富,易于使用,并且高度可定制化,能够帮助开发者快速构建美观的数据展示页面。DisplayTag 支持...

    displaytag标签使用

    最基本的使用方式是在JSP页面中设置`&lt;display:table&gt;`标签,将一个集合对象(如List)赋值给`name`属性,DisplayTag会自动遍历集合中的每个对象,显示其所有公共getter方法对应的属性。例如: ```jsp ( "test", ...

    DisplayTag分页及属性

    DisplayTag 是一个强大的开源Java Web开发中的表格和分页标签库,它提供了许多高级功能,如排序、分页、国际化支持、导出等,能够帮助开发者更方便地处理表格展示和数据分页的问题。以下是对DisplayTag分页及属性的...

    自己整理的DisplayTag标签的使用

    ### DisplayTag标签库详解与应用 #### 显示与管理数据的新维度:DisplayTag标签库 在Web开发领域,特别是Java Web开发中,处理和展示大量数据列表是一项常见但又复杂的工作。DisplayTag作为一款功能强大的标签库,...

    displaytag-jar.rar_Displaytag.jar_displaytag_displaytag 1.2 jar_

    Displaytag是一个开源的Java库,专门用于创建复杂的表格布局,提供了许多高级功能,如分页、排序、国际化、导出等。在Web开发中,它作为一个JSP标签库使用,大大简化了在网页上处理表格数据的过程。"displaytag-jar....

    displaytag简单项目

    DisplayTag是一个开源的Java库,专门用于创建复杂的表格和页面布局。这个“displaytag简单项目”是一个基于DisplayTag库的示例应用,旨在帮助开发者理解并掌握如何在实际项目中使用DisplayTag。在这个项目中,你可以...

    用JavaScript操作displayTag表头操作

    这篇博客“用JavaScript操作displayTag表头操作”显然关注的是如何利用JavaScript来操纵一个名为`displayTag`的表格库的表头功能。DisplayTag是一个功能丰富的开源Java Web组件库,它提供了一种强大的方式来展示表格...

    displaytag-1.1.1标签库及其使用方法.rar

    DisplayTag 是一个开源的Java Web开发中的表格标签库,它为网页开发者提供了强大的表格展示功能。DisplayTag 1.1.1是该库的一个版本,它包含了一系列预定义的JSP标签,使得创建复杂的、可分页、可排序、可导出的表格...

    Displaytag实现分页

    Displaytag 是一个开源的 Java 框架,用于在 Web 应用中生成表格和实现分页、排序等功能。它简化了在 JSP 页面中处理数据表的复杂性,提供了丰富的定制选项。以下是对 Displaytag 实现分页的详细解释: 1. **下载与...

Global site tag (gtag.js) - Google Analytics