java.lang.IllegalStateException: getOutputStream() has already been called 解决办法

今天上班做从数据库查询图片到jsp页面显示,结果报java.lang.IllegalStateException: getOutputStream() has already been called 错误,折腾了将近半天的时间才弄出来。

在网上查阅了很多资料基本上都是一家之言,虽然说得都对,不过没有源码。所以我写下来供大家查阅。废话不多说,直接贴代码:


1、jsp页面(注:我用的是springMVC)

<img style="margin-top: 100px;" alt="投诉举报流程图" src="${stream }">


2、后台java Action方法:

/**
* 投诉举报流程图

* @author wangmingyuan
* @return ModelAndView
* @serialData 2016年11月24日下午4:16:05
*/
@RequestMapping(value = "/complaintreportpicture")
public ModelAndView complaintreportpicture(String proId,HttpServletRequest request,HttpServletResponse response,Model model) {
Map<String, Object> vdata = new HashMap<String, Object>();
InputStream stream =  wfComplaintReportService.findProcessPic("1");

try {
OutputStream output=response.getOutputStream();
int len=-1;  
            byte[]buf=new byte[1024];  
            while((len=stream.read(buf,0,1024))!=-1){  
            output.write(buf,0,len); 
            }
            model.addAttribute("stream",stream);
            output.flush();
            return null;  
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  
return super.load("workflow/complaintreport/complaint_picture", vdata);
}



以上经过测试没问题!!


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值