IE6下用response下载文件时文件输出流报错

在做一个从数据库中查询数据后生成文件并弹出下载框l的操作,在IE8下正常,但是在Ie6下面点击导出就报错,错误信息如下:

2013-12-26 08:45:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
 at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
 at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:752)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)


页面上的导出按钮是一个超链接:

 

 <a href="javascript:void(0)" onclick="window.location=encodeURI('Policy_policyContentsExport.action?oid=${(policy.id)!''}&pname=${(policy.name)!''}');">导出</a>

 

经排除确认是IE6对javascript:void(0);的支持问题,最后在其添加return false,强制给其一个返回值,不再等待,修改后:

 <a href="javascript:void(0)" onclick="window.location=encodeURI('Policy_policyContentsExport.action?oid=${(policy.id)!''}&pname=${(policy.name)!''}');return false;">导出</a>

备:同时修改为<a href="#" onclick="window.location=encodeURI('Policy_policyContentsExport.action?oid=${(policy.id)!''}&pname=${(policy.name)!''}');">导出</a>也是可以的,但是href="#"也存在浏览器兼容性问题,虽然解决了该问题,但还存在问题风险,不建议使用

你可能感兴趣的:(IE6下用response下载文件时文件输出流报错)