`

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


分享到:
评论

相关推荐

    struts2从入门到精通总结(备忘)

    ”应用,通过配置Struts2的核心文件struts.xml来定义Action,然后在JSP页面上展示结果。 二、Struts2配置 配置是Struts2的基础,主要包括以下部分: 1. `struts-default.xml`:包含了Struts2的默认配置,提供了一些...

    jQuery+json+struts2 开发备忘录(一)

    在本篇“jQuery+json+struts2 开发备忘录(一)”中,我们将探讨如何使用这三种技术来构建高效且用户友好的Web应用程序。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。JSON...

    STRUTS备忘录、

    Struts2引入了拦截器(Interceptor)的概念,它们是预定义或自定义的行为,可以在Action执行前后执行,实现事务管理、登录检查、日志记录等功能。 **11. 组合使用其他框架** Struts可以与Hibernate、iBatis等持久层...

    T1F1练习示例(s2sh)

    标题中的"T1F1练习示例(s2sh)"暗示了这是一个关于编程练习的项目,主要使用Struts2、Spring和Hibernate这三种技术的整合,通常简称为"S2SH"。Struts2是一个流行的MVC(Model-View-Controller)框架,用于构建Java ...

    SSH辅助教学系统jsp开发语言mysql数据库myeclipse设计java编程

    JSP SSH辅助教学系统 是一套完善的WEB设计系统(struts2+spring+hibernate),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 系统主要有三类用户角色...

    JAVA程序员面试宝典

    2.IO流:理解流的概念,熟练使用字节流、字符流,以及缓冲流、对象流等,掌握文件操作和网络通信。 3. NIO(非阻塞I/O):了解NIO的新特性,如选择器、通道、缓冲区,以及在高并发场景下的优势。 四、设计模式 1. ...

    常见的面试题

    它将Controller的部分实现在ActionServlet中,通过配置文件(struts-config.xml)定义各个Action,使得控制逻辑更加清晰。此外,Struts还提供了一些辅助组件,如ActionForm、Tiles等,增强了应用程序的可扩展性和可...

    通讯录系统文档(初期设计)

    - **struts.xml**: Struts 框架的配置文件。 - **工具目录结构**: 规范项目结构,便于管理和维护。 - **界面设计**: - 登陆界面: 提供用户登录界面。 - 主页面: 用户成功登录后进入的主要操作界面。 - 添加好友...

    JAVA技术体系

    - **Struts 框架**:介绍 Struts 架构的核心组件、标签库等。 - **JMS**:Java 消息服务,用于异步通信。 - **JNDI**:Java 命名和目录接口,提供查找和绑定服务。 - **webService**:基于 SOAP 和 REST 的 web 服务...

    超级有影响力霸气的Java面试题大全文档

    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception有什么区别?  error 表示恢复...

    JAVA软件工程师简历模版.doc

    - **技术栈**: J2EE平台下的B/S模式开发,使用Struts, Hibernate, Spring, Ajax, XML等技术,采用四层架构:Web层、控制转发层、服务层、DAO层。 - **个人贡献**: 参与文档编写、用户管理和日志管理模块开发,运用...

    JAVA—sql 笔试常见题

    - **备忘录模式**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 - **观察者模式**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到...

    java笔试题,面试题,ssh大全

    - **行为型模式**:包括命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、策略模式(Strategy)、模板方法模式...

Global site tag (gtag.js) - Google Analytics