displaytag导出所有数据及与POI3.7冲突有关问题的解决
displaytag导出所有数据及与POI3.7冲突问题的解决
半年不复活的主,终于有点激情写点东西了,其实也不是什么新鲜重要的东西。
就是最近在项目中有表格导出excel的需求,感觉displaytag很新颖简单,首先它可以和spring,struts完美结合,说的有些夸张,:-)。
废话不多说了,首先遇到了2个问题。
第一,excel导出竟然是按照可显示的数据导出,由于数据不是特别庞大所以想一次性导出所有数据。
第二,displaytag 1.2使用POI3.5以上版本会报找不到该方法的错误信息,由于项目应用最新的POI3.7,又不能将原有的代码进行降级处理。
综上所述的两条原因,我开始装起大牛起来,将maven上的displaytag源码下载好,导入myeclipse IDE,更新包等等,看源码不详述了。下面就将2种问题的解决办法附上。
A1:改动
改为
改动
改为
修改以上两处编译打包搞定
A2:这个问题很简单,从POI3.5之后 POI中的生成EXCEL的方法依赖性发生了很大的变化,所以只需将maven中的poi3.2更换3.7,然后编译即可。
下面将3.7的maven库列出
问题解决。
至于改动这几处是否带来其他问题,由于暂时项目只是测试阶段,未发现问题。固不能回答,请见谅。
想来有些人不会使用maven去修改源码,先将修改后的两个jar附上。
如果有人使用PDF 请更新最新ITEXT5.0版本,不建议使用1.3。由于我不导出PDF,将不修改源码,如有人使用修改了,请附上jar,一同将displaytag升级一下,谢谢。
太纠结了为啥好东西都不升级库啊。
半年不复活的主,终于有点激情写点东西了,其实也不是什么新鲜重要的东西。
就是最近在项目中有表格导出excel的需求,感觉displaytag很新颖简单,首先它可以和spring,struts完美结合,说的有些夸张,:-)。
废话不多说了,首先遇到了2个问题。
第一,excel导出竟然是按照可显示的数据导出,由于数据不是特别庞大所以想一次性导出所有数据。
第二,displaytag 1.2使用POI3.5以上版本会报找不到该方法的错误信息,由于项目应用最新的POI3.7,又不能将原有的代码进行降级处理。
综上所述的两条原因,我开始装起大牛起来,将maven上的displaytag源码下载好,导入myeclipse IDE,更新包等等,看源码不详述了。下面就将2种问题的解决办法附上。
A1:改动
#找到该class文件 org.displaytag.tags.TableTag.java1088行左右,
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.java312行左右将
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升级一下,谢谢。
太纠结了为啥好东西都不升级库啊。