最近要做一个新的项目,基本框架是struts2 + hibernate3.2 + spring2.5 。这几天就架构系统,全部都重新整理一下。后台列表的显示用开源的displaytag. 今天在做整合时发现,当页面使用了<s:select ...> 时,displaytag的导出功能就不能使用了,异常堆栈信息:
Exception: [.TableTag] 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).
原因:未使用displaytag的导出过滤器(org.displaytag.filter.ResponseOverrideFilter),不过这在通常情况下并不会导致问题,但是如果在JSP的页面中使用了其它框架的标签(诸如Struts),而非常巧合的是在这些标签的处理过程中又恰好调用了ServletResponse.flushBuffer()等可以导致提交响应(即导致ServletResponse.isCommit()返回true)的方法,这个问题就会出现。
解决方案:配置Displaytag的导出过滤器(web.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>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ResponseOverrideFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
默认情况下此过滤器在把导出内容写回响应之前会将这些内容进行缓存。我们也可以设置一个可选的参数(buffer)的值为false以便使过滤器直接把内容写到输出流中,这可以使响应速度更快并且使用更少的内存,但是内容的长度不会被设置。在这里我们不设置这个参数。
测试过了,可以导出了.
分享到:
相关推荐
DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明
Struts2+displaytag+dbutil 可运行完整web工程 jdk1.6、1.7 tomcat6.0
Struts2整合DisplayTag 实现分页技术
NULL 博文链接:https://fangguanhong.iteye.com/blog/1908593
关于displaytag标签的使用 使用方便 做网页的时候用的着
displaytag标签使用详解 应用实例
displaytag 表格 标签 displaytag-1.1.1标签库及其使用方法
[浪曦][原创][A337]Struts+Hibernate+DisplayTag标签+js+Div+css 第2讲(zk原创).rar
基于DisplayTag的分页方案
Struts2结合DisplayTag框架进行分页案例 有建表脚本 适合初学者
适合开始学习使用此标签。。。。。。。。。。。。。。。。。。
displaytag的使用方法(用于数据表格的显示和功能控制)Displaytag1.1版本使用方法
displaytag所有包(资源) 及使用方法
示例如何使用displaytag,详细介绍displaytag在使用方式上的不同,具有举一反三的效果
displaytag1.1显示排序分页导出自动标签
displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar
DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...
非常好的资源,提供用运,技术,思路,例子,是人轻松灵活的运用
NULL 博文链接:https://zhouwenjun.iteye.com/blog/576868