`
elfmtian
  • 浏览: 55692 次
  • 性别: Icon_minigender_1
  • 来自: 宁夏银川
社区版块
存档分类
最新评论

displaytag导出所有数据及与POI3.7冲突问题的解决

    博客分类:
  • Tag
阅读更多
半年不复活的主,终于有点激情写点东西了,其实也不是什么新鲜重要的东西。
就是最近在项目中有表格导出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

    在这个场景中,我们关注的是"displaytag-export-poi-1.2.jar",这是一个与Apache POI库结合使用的Displaytag扩展,用于支持Excel文件的导出。 Apache POI是Apache软件基金会的一个项目,主要用来处理Microsoft ...

    displaytag-1.1.jar和display-export-poi-1.1.jar下载

    在使用display-export-poi-1.1.jar进行数据导出时,DisplayTag会利用Apache POI库将表格数据转换成Excel格式,并提供下载链接给用户。这个过程通常涉及设置导出的样式、格式和过滤条件,以便生成符合预期的Excel文件...

    displayTag导出excecl二次开发包

    displayTag导出excecl二次开发包中文乱码问题解决,运用第三方中间间开发的资源包,具本配置过程参见,...

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

    这个压缩包包含了解决DisplayTag在处理中文显示时遇到的问题,以及一个专门用于编辑.properties文件的插件,使得配置更加方便。 Displaytag知识点: 1. **基本功能**:DisplayTag支持分页、排序、导出数据、自定义...

    displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar

    displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar

    displaytag-export-poi-1.1.1

    displaytag-export-poi-1.1.1

    displaytag-1.1 源码

    3. `displaytag-export-poi`: 这部分代码可能与数据导出功能有关,特别是使用Apache POI库来生成Excel或Word文档。POI是一个流行的API,允许Java程序创建、修改和读取Microsoft Office格式的文件,这对于从Web应用中...

    displaytag中文排序问题解决办法

    解决DisplayTag中文排序问题的关键在于理解Java的字符串比较机制。Java中的`String`对象在进行比较时,默认是基于Unicode的字典顺序,这可能导致中文字符按照其Unicode值而非汉语拼音或笔画顺序排序。对于中文来说,...

    DisplayTag1.2 扩展(自定义分页、排序、导出、页面导航)

    DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...

    displaytag及使用方法

    DisplayTag的工作原理基于JSP标签库,它可以与任何Java持久层框架(如Hibernate、JPA)或数据访问技术(如JDBC)配合使用。其核心思想是将表格的渲染逻辑从业务逻辑和视图层分离,使开发者可以更专注于数据处理和...

    解决中文乱码的displaytag-1.2.jar

    针对displaytag Excel导出中文乱码的情况,对其添加gbk编码,使其能顺利将中文导出excel

    解决display tag导出execle中文乱码问题 jar包

    NULL 博文链接:https://jhaij.iteye.com/blog/267491

    Displaytag实现分页

    - 如果需要导出功能(例如 PDF 或 Excel),还需要导入其他扩展库,如 `displaytag-export-poi.jar`,以及 Displaytag 依赖的其他库,如 `commons-logging`, `commons-lang`, `commons-collections`, `commons-...

    displaytag1.1.1配套所需要的包

    9. **displaytag-export-poi-1.1.1.jar**:这是DisplayTag的POI导出模块,依赖于Apache POI库,用于将表格数据导出为Excel格式。 10. **displaytag-portlet-1.1.1.jar**:这个库是DisplayTag针对portlet环境的扩展...

    displaytag1.2及所需全部jar包和实例

    5. **导出功能**:DisplayTag可以将表格数据导出为CSV、Excel、PDF等多种格式,便于数据分析和共享。 6. **可扩展性**:DisplayTag提供了丰富的扩展接口,可以添加自定义的行为和功能,如自定义列渲染、过滤器等。 ...

    自己整理的DisplayTag标签的使用

    ### DisplayTag标签库详解与应用 #### 显示与管理数据的新维度:...DisplayTag通过其简洁而强大的功能,为Web开发中的数据展示提供了全新的解决方案,不仅简化了代码编写,也极大提升了数据展示的效率和用户体验。

    displaytag有用的包

    7. **displaytag-export-poi-1.1.1.jar**:这是DisplayTag的导出模块,特别针对Apache POI,用于支持表格数据的Excel导出。 8. **slf4j-log4j12-1.4.2.jar**:SLF4J的绑定库,将SLF4J接口绑定到Log4j日志实现,使得...

Global site tag (gtag.js) - Google Analytics