【发布时间】:2012-07-01 13:51:09
【问题描述】:
我正在显示一些事件的报告。我希望控制器显示弹出窗口以进行保存和打开。
我已经设置了响应文件,设置响应后我正在返回视图。
现在我的问题是,
我收到错误“java.lang.IllegalStateException: getOutputStream() 已为此响应调用”
在我的控制器类中,我编写了以下代码:
......一些代码............
InputStream is =
new FileInputStream(new File("c:/reports/test_jasper.pdf"));
response.setHeader("Content-Disposition","attachment;filename=\"test_jasper.pdf\"");
OutputStream opStream = response.getOutputStream();
IOUtils.copy(is, opStream);
response.flushBuffer();
HttpServletResponse response1 = new HttpServletResponse();
model.addAttribute(ABC, new abc());
model.addAttribute(DEF, new def());
return SOME_VIEW;
框架:
Spring-MVC,休眠
例外:
java.lang.IllegalStateException: getOutputStream() 已经为此响应调用
所需的 O/P: 我希望响应显示文件弹出窗口,并希望浏览器重定向到其他视图。
【问题讨论】:
-
IOUtils.copy(is, opStream);必须尝试关闭您在操作后传递的响应的输出流。哪个抛出异常。 -
@杰瑞:有什么解决办法...?????
-
@Thihara:我试过“response.getOutputStream().close();”然后也显示相同的错误
-
那是不可能的。 HTTP 不能那样工作。
标签: java jsp servlets spring-mvc download