【发布时间】:2013-06-28 08:19:44
【问题描述】:
我正在为我的 Liferay portlat 应用程序使用 struts2、spring3、hibernate。
我用的是Display Tag 1.2版本,下载了displaytag-portlet、displaytag、displaytag-export-poi。
我还创建了 displaytag.properties 文件并在其中添加了以下行。
factory.requestHelper=org.displaytag.portlet.PortletRequestHelperFactory.
一切运行良好。分页、显示、排序都运行良好。但是如果我把 export="true" 放在<display:table> 中,那么它会显示我转换 pdf、csv、Excel、rtc 的链接..
但是当我点击任何像 CSV 这样的链接时,它会给我一个错误。
08:15:32,191 错误 [http-bio-8080-exec-17][render_portlet_jsp:154] 异常:[.TableTag] 在返回导出的数据之前无法重置响应。您没有使用导出过滤器。确保在 display:table 之前没有使用其他 jsp 标签,或参考 displaytag 文档了解如何配置导出过滤器(需要 j2ee 1.3)。 在 org.displaytag.tags.TableTag.writeExport(TableTag.java:1538) 在 org.displaytag.tags.TableTag.doExport(TableTag.java:1454) 在 org.displaytag.tags.TableTag.doEndTag(TableTag.java:1309) 在 org.apache.jsp.pages.pim.employee.searchEmployee_jsp._jspService(searchEmployee_jsp.java:509) 在 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
解决办法是什么?
我还在 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>
【问题讨论】:
标签: jsp struts2 liferay portlet displaytag