关键字: 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.1.1-execle@cvs导出中文乱码问题解决.jar
displaytag详细用法(中文问题已解决,附带自己修改的properties文件)还附带了properties专用文件编辑器插件
关于displaytag标签的使用 使用方便 做网页的时候用的着
但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此本人对它做了扩展,主要扩展功能如下: 1.自定义分页、排序 2.自定义导出数据 3.增强分页导航功能,可以实现输入跳转、选择每页...
通过修改源码的方式 解决displaytag中文排序问题.压缩包中包含1.0与1.1版本修改的源文件、编译后的文件,及修改后的jar包。
displaytag标签使用详解 应用实例
针对displaytag Excel导出中文乱码的情况,对其添加gbk编码,使其能顺利将中文导出excel
你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格,...
DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明
displaytag所有包(资源) 及使用方法
从数据库获得数据,显示到页面。功能相当强大,支持直接生成excel等格式,支持排序等,但似乎不支持分页显示
displaytag1.1显示排序分页导出自动标签
displaytag的使用方法(用于数据表格的显示和功能控制)Displaytag1.1版本使用方法
使用Displaytag默认的Excel导出视图(org.displaytag.export.ExcelView)在绝大多数的情况下都可以满足应用的要求
改装后的displayTag分页插件,解决中文问题,内置帮助文档和示例文件及jar包,比较好用,如果不满足你的需求请不要砸砖 补充: csdn附件不能修改,jsp+servlet分页时有bug,请注意查询所有的serlvet不支持带参数,即...
示例如何使用displaytag,详细介绍displaytag在使用方式上的不同,具有举一反三的效果
DisplayTag分页及属性
用于解决,displaytag的中文显示问题
Displaytag实现分页