`

关于displaytag的列表不能导出Excel的问题

阅读更多
关键字: displaytag
关于displaytag的列表不能导出Excel的问题,已经弄清楚原因并找到解决方案了。
异常堆栈:
Exception: [.ELTableTag] Unable to reset response before returning exported data. You are not using an export filter. Be sure that no other jsp tags are used before display:table or refer to the displaytag documentation on how to configure the export filter (requires j2ee 1.3).
at org.displaytag.tags.TableTag.writeExport(TableTag.java:1275)
at org.displaytag.tags.TableTag.doExport(TableTag.java:1201)
at org.displaytag.tags.TableTag.doEndTag(TableTag.java:1070)
……

原因:未使用displaytag的导出过滤器(org.displaytag.filter.ResponseOverrideFilter),不过这在通常情况下并不会导致问题,但是如果在JSP的页面中使用了其它框架的标签(诸如Struts),而非常巧合的是在这些标签的处理过程中又恰好调用了ServletResponse.flushBuffer()等可以导致提交响应(即导致ServletResponse.isCommit()返回true)的方法,这个问题就会出现。
解决方案:配置Displaytag的导出过滤器(web.xml)。
Xml代码
<filter> 
      <filter-name>ResponseOverrideFilter</filter-name> 
      <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class> 
  </filter> 
…… 
<filter-mapping> 
      <filter-name>ResponseOverrideFilter</filter-name> 
      <url-pattern>*.do</url-pattern> 
</filter-mapping> 
<filter-mapping> 
      <filter-name>ResponseOverrideFilter</filter-name> 
      <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 
默认情况下此过滤器在把导出内容写回响应之前会将这些内容进行缓存。我们也可以设置一个可选的参数(buffer)的值为false以便使过滤器直接把内容写到输出流中,这可以使响应速度更快并且使用更少的内存,但是内容的长度不会被设置。在这里我们不设置这个参数。
原文地址:http://zuiyanwangyue.iteye.com/blog/359778

还有另外一种解决方案:
Context :
When displaytag exports data in any non-html format, it needs to change the content type returned to the browser and reset any other content generated by the surrounding page.
Sometimes this can’t be done: if content has already been sent back to the user, the response can’t be reset and you get an error. This could happen because too many chars have been already written to the response, so that the response buffer was full and response has been automatically flushed.
Solution :
Add the following to the page…
<%@ page buffer = "16kb" %>
原文地址:http://ibnaziz.wordpress.com/2008/09/03/exception-tabletag-unable-to-reset-response-before-returning-exported-data/

  经检验,后一个方法好像不行。
分享到:
评论

相关推荐

    displaytag-1.0-src.zip_displaytag-1.2-bin_displaytag-bin_excel_排

    这对于需要将大量数据导出到电子表格的应用场景非常有用。导出过程是自动化的,用户只需点击一个链接,DisplayTag就能处理剩下的工作。 “支持排序”意味着DisplayTag提供了列头排序功能,用户可以通过点击表头来按...

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

    6. **导出功能**:DisplayTag提供导出数据到CSV、Excel、PDF等多种格式的能力,这对于数据分析和报告生成非常有用。通过`export`属性可以开启或关闭特定格式的导出。 7. **分页**:DisplayTag的分页功能是自动的,...

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

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

    displaytag-1.1 源码

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

    displaytag-export-poi-1.2.jar

    此外,Displaytag还允许自定义导出格式,如果默认的`ExcelView`不能满足需求,可以创建自定义的导出视图实现`ExportView`接口,以提供更复杂的数据格式化或者定制化的样式。 在"displaytag-license.txt"文件中,...

    displaytag及使用方法

    设置`export`属性为true后,用户可以通过点击表格上方的链接导出数据,DisplayTag支持CSV、XML、Excel等多种格式。可以通过`exportFormats`属性指定导出格式。 6. **国际化**: DisplayTag支持多语言,通过设置`...

    displayTag1.2

    6. **导出功能**:DisplayTag支持将表格数据导出为CSV、Excel、PDF等多种格式,方便数据处理和分析。 7. **扩展性**:通过使用自定义的标签和过滤器,可以轻松扩展其功能以满足特定需求。 8. **易用性**:...

    displaytag标签使用

    - **导出**:支持CSV、Excel、PDF等多种格式的数据导出,通过`export`属性和`exportTypes`属性控制。 - **国际化**:DisplayTag 支持多语言,可以通过`locale`属性设置。 - **条件显示和操作**:使用`decorator`...

    自己整理的DisplayTag标签的使用

    2. **数据导出**:允许将展示在页面上的数据导出为CSV、Excel等格式,方便用户离线查看或进一步分析数据。 3. **分组**:可以根据特定字段对数据进行分组,帮助用户更清晰地理解数据结构和分布。 4. **列排序**:...

    displaytag简单项目

    6. **导出功能**:可以将表格数据导出为CSV、Excel、PDF等格式,便于数据分析或打印。 在这个"displaytag简单项目"中,你可能需要关注以下几个关键点: 1. **配置DisplayTag**:在项目的web.xml中,你需要配置...

    displaytag的使用方法

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

    Displaytag实现分页

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

    displaytag-jar.rar_Displaytag.jar_displaytag_displaytag 1.2 jar_

    4. **导出**:Displaytag支持将表格数据导出为CSV、Excel、PDF等多种格式,方便用户离线查看或进一步处理。 5. **国际化**:提供多语言支持,可以根据用户浏览器的设置自动切换语言。 6. **错误和消息处理**:能够...

    DisplayTag标签使用说明

    DisplayTag 还支持更多的特性,如排序(通过点击表头实现)、分页、国际化、导出数据到CSV或Excel格式、条件渲染、过滤等。这些功能可以通过设置`&lt;display:table&gt;`和`&lt;display:column&gt;`标签的其他属性来实现。 总的...

    使用那个displaytag元件所需用的jar包

    9. **导出功能**:DisplayTag支持将表格数据导出为CSV、Excel、PDF等多种格式,这对于数据分析和报表生成非常有用。 10. **样式和模板**:DisplayTag允许开发者自定义表格的CSS样式,提供了多种预设样式,也可以...

    displaytag,pager-taglib 分页包

    4. **导出**:支持将表格数据导出为CSV、Excel、PDF等多种格式,方便用户保存或打印。 5. **国际化与本地化**:Displaytag支持多语言,可以根据用户的浏览器设置显示相应的语言。 6. **自定义样式**:可以使用CSS来...

    displaytag简单实例

    4. **下载功能**:DisplayTag支持导出表格数据到各种格式,如CSV、Excel或PDF,使得用户可以方便地保存和共享数据。 5. **国际化与本地化**:DisplayTag支持多种语言,可以根据用户浏览器的设置自动调整标签的文本...

    JSP Struts2 分页 导出Excel

    **JSP Struts2 分页 导出Excel** ...通过以上步骤,我们可以构建一个功能完整的Web应用,实现从查询、分页到导出Excel的流程。在实际开发中,还需要考虑错误处理、性能优化、安全性等问题,确保系统的稳定性和可靠性。

Global site tag (gtag.js) - Google Analytics