struts2 输出流展示图片或xml 备忘

采用非resultType是stream
直接acton方法里面返回return null
struts2

InputStream io = null;
try{
io = repositoryService.getResourceAsStream(deploymentId,fileName);
if(io == null){
//Struts2Utils.renderHtml("<html><head></head><body></body></html>");
logger.warn("io 为null,"+deploymentId+","+fileName);
Struts2Utils.renderText("读取数据为null(deploymentId:"+deploymentId+",fileName:"+fileName+"),该业务未定义工作流或流程图有误!");
return ;
}
if(isImage){
//response.setContentType("image/png");
response.setContentType("image/x-png");
}else{
response.setContentType("text/xml");
}


byte[] buf = new byte[1];
int len = 0;
OutputStream os = response.getOutputStream();//这个位置很重要,如果有报错一定不能执行到这里
while((len = io.read(buf)) != -1){
os.write(buf, 0, len);
}
os.flush();
os.close();
buf = null;
}catch(IOException e){
addActionError(e.getMessage());
}finally{
if (io != null) {
try {io.close();} catch ( IOException e ) {e.printStackTrace();}
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值