我正在显示某些事件的报告。我希望控制器显示保存并打开的弹出窗口。
在设置响应之后,我已经设置了响应文件,我正在返回视图。
现在我的问题是,
我收到错误“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;
框架:
弹簧-MVC,休眠
例外:
java.lang.IllegalStateException:已为此响应调用了getOutputStream()
期望的O / P: 我希望响应show popup for file,并希望浏览器重定向到其他视图。
答案 0 :(得分:1)
在请求处理期间,正在调用HttpServletResponse.getWriter()
和HttpServletResponse.getOutputStream()
。根据规范,使用OutputStream和Writer都是非法的。
在尝试在其他地方调用HttpServletResponse.getWriter()
/