`

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();}
			}
		}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics