半年不复活的主,终于有点激情写点东西了,其实也不是什么新鲜重要的东西。
就是最近在项目中有表格导出excel的需求,感觉displaytag很新颖简单,首先它可以和spring,struts完美结合,说的有些夸张,:-)。
废话不多说了,首先遇到了2个问题。
第一,excel导出竟然是按照可显示的数据导出,由于数据不是特别庞大所以想一次性导出所有数据。
第二,displaytag 1.2使用POI3.5以上版本会报找不到该方法的错误信息,由于项目应用最新的POI3.7,又不能将原有的代码进行降级处理。
综上所述的两条原因,我开始装起大牛起来,将maven上的displaytag源码下载好,导入myeclipse IDE,更新包等等,看源码不详述了。下面就将2种问题的解决办法附上。
A1:改动
#找到该class文件
org.displaytag.tags.TableTag.java
1088行左右,
PaginationHelper paginationHelper = new PaginationHelper(
pageNumber, pagesize);
this.tableIterator = paginationHelper.getIterator(this.list);
改为
if (MediaTypeEnum.HTML.equals(this.currentMediaType)) {
PaginationHelper paginationHelper = new PaginationHelper(
pageNumber, pagesize);
this.tableIterator = paginationHelper.getIterator(this.list);
} else {
this.tableIterator = IteratorUtils.getIterator(this.list);
}
改动
#找到该class文件
org.displaytag.render.TableWriterTemplate.java
312行左右将
RowIterator rowIterator = model.getRowIterator(false);
改为RowIterator rowIterator = null;
if (MediaTypeEnum.HTML.equals(model.getMedia())) {
rowIterator = model.getRowIterator(false);
} else {
rowIterator = model.getRowIterator(true);
}
修改以上两处编译打包搞定
A2:这个问题很简单,从POI3.5之后 POI中的生成EXCEL的方法依赖性发生了很大的变化,所以只需将maven中的poi3.2更换3.7,然后编译即可。
下面将3.7的maven库列出
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.7</version>
</dependency>
问题解决。
至于改动这几处是否带来其他问题,由于暂时项目只是测试阶段,未发现问题。固不能回答,请见谅。
想来有些人不会使用maven去修改源码,先将修改后的两个jar附上。
如果有人使用PDF 请更新最新ITEXT5.0版本,不建议使用1.3。由于我不导出PDF,将不修改源码,如有人使用修改了,请附上jar,一同将displaytag升级一下,谢谢。
太纠结了为啥好东西都不升级库啊。
分享到:
相关推荐
在这个场景中,我们关注的是"displaytag-export-poi-1.2.jar",这是一个与Apache POI库结合使用的Displaytag扩展,用于支持Excel文件的导出。 Apache POI是Apache软件基金会的一个项目,主要用来处理Microsoft ...
在使用display-export-poi-1.1.jar进行数据导出时,DisplayTag会利用Apache POI库将表格数据转换成Excel格式,并提供下载链接给用户。这个过程通常涉及设置导出的样式、格式和过滤条件,以便生成符合预期的Excel文件...
displayTag导出excecl二次开发包中文乱码问题解决,运用第三方中间间开发的资源包,具本配置过程参见,...
这个压缩包包含了解决DisplayTag在处理中文显示时遇到的问题,以及一个专门用于编辑.properties文件的插件,使得配置更加方便。 Displaytag知识点: 1. **基本功能**:DisplayTag支持分页、排序、导出数据、自定义...
displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar
displaytag-export-poi-1.1.1
3. `displaytag-export-poi`: 这部分代码可能与数据导出功能有关,特别是使用Apache POI库来生成Excel或Word文档。POI是一个流行的API,允许Java程序创建、修改和读取Microsoft Office格式的文件,这对于从Web应用中...
解决DisplayTag中文排序问题的关键在于理解Java的字符串比较机制。Java中的`String`对象在进行比较时,默认是基于Unicode的字典顺序,这可能导致中文字符按照其Unicode值而非汉语拼音或笔画顺序排序。对于中文来说,...
DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...
DisplayTag的工作原理基于JSP标签库,它可以与任何Java持久层框架(如Hibernate、JPA)或数据访问技术(如JDBC)配合使用。其核心思想是将表格的渲染逻辑从业务逻辑和视图层分离,使开发者可以更专注于数据处理和...
针对displaytag Excel导出中文乱码的情况,对其添加gbk编码,使其能顺利将中文导出excel
NULL 博文链接:https://jhaij.iteye.com/blog/267491
- 如果需要导出功能(例如 PDF 或 Excel),还需要导入其他扩展库,如 `displaytag-export-poi.jar`,以及 Displaytag 依赖的其他库,如 `commons-logging`, `commons-lang`, `commons-collections`, `commons-...
9. **displaytag-export-poi-1.1.1.jar**:这是DisplayTag的POI导出模块,依赖于Apache POI库,用于将表格数据导出为Excel格式。 10. **displaytag-portlet-1.1.1.jar**:这个库是DisplayTag针对portlet环境的扩展...
5. **导出功能**:DisplayTag可以将表格数据导出为CSV、Excel、PDF等多种格式,便于数据分析和共享。 6. **可扩展性**:DisplayTag提供了丰富的扩展接口,可以添加自定义的行为和功能,如自定义列渲染、过滤器等。 ...
### DisplayTag标签库详解与应用 #### 显示与管理数据的新维度:...DisplayTag通过其简洁而强大的功能,为Web开发中的数据展示提供了全新的解决方案,不仅简化了代码编写,也极大提升了数据展示的效率和用户体验。
7. **displaytag-export-poi-1.1.1.jar**:这是DisplayTag的导出模块,特别针对Apache POI,用于支持表格数据的Excel导出。 8. **slf4j-log4j12-1.4.2.jar**:SLF4J的绑定库,将SLF4J接口绑定到Log4j日志实现,使得...