采用非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的核心文件struts.xml来定义Action,然后在JSP页面上展示结果。 二、Struts2配置 配置是Struts2的基础,主要包括以下部分: 1. `struts-default.xml`:包含了Struts2的默认配置,提供了一些...
在本篇“jQuery+json+struts2 开发备忘录(一)”中,我们将探讨如何使用这三种技术来构建高效且用户友好的Web应用程序。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。JSON...
Struts2引入了拦截器(Interceptor)的概念,它们是预定义或自定义的行为,可以在Action执行前后执行,实现事务管理、登录检查、日志记录等功能。 **11. 组合使用其他框架** Struts可以与Hibernate、iBatis等持久层...
标题中的"T1F1练习示例(s2sh)"暗示了这是一个关于编程练习的项目,主要使用Struts2、Spring和Hibernate这三种技术的整合,通常简称为"S2SH"。Struts2是一个流行的MVC(Model-View-Controller)框架,用于构建Java ...
JSP SSH辅助教学系统 是一套完善的WEB设计系统(struts2+spring+hibernate),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 系统主要有三类用户角色...
2.IO流:理解流的概念,熟练使用字节流、字符流,以及缓冲流、对象流等,掌握文件操作和网络通信。 3. NIO(非阻塞I/O):了解NIO的新特性,如选择器、通道、缓冲区,以及在高并发场景下的优势。 四、设计模式 1. ...
它将Controller的部分实现在ActionServlet中,通过配置文件(struts-config.xml)定义各个Action,使得控制逻辑更加清晰。此外,Struts还提供了一些辅助组件,如ActionForm、Tiles等,增强了应用程序的可扩展性和可...
- **struts.xml**: Struts 框架的配置文件。 - **工具目录结构**: 规范项目结构,便于管理和维护。 - **界面设计**: - 登陆界面: 提供用户登录界面。 - 主页面: 用户成功登录后进入的主要操作界面。 - 添加好友...
- **Struts 框架**:介绍 Struts 架构的核心组件、标签库等。 - **JMS**:Java 消息服务,用于异步通信。 - **JNDI**:Java 命名和目录接口,提供查找和绑定服务。 - **webService**:基于 SOAP 和 REST 的 web 服务...
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception有什么区别? error 表示恢复...
- **技术栈**: J2EE平台下的B/S模式开发,使用Struts, Hibernate, Spring, Ajax, XML等技术,采用四层架构:Web层、控制转发层、服务层、DAO层。 - **个人贡献**: 参与文档编写、用户管理和日志管理模块开发,运用...
- **备忘录模式**:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 - **观察者模式**:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到...
- **行为型模式**:包括命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、策略模式(Strategy)、模板方法模式...