现象:
Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the <param name="inputName"> tag specified for this action.
原因:
你要下载的文件不存在,导致inputStream为null,所以报了这个错误;查看官方源代码,
如下:
if (inputStream == null) {
// Find the inputstream from the invocation variable stack
inputStream = (InputStream) invocation.getStack().findValue(conditionalParse(inputName, invocation));
}
if (inputStream == null) {
String msg = ("Can not find a java.io.InputStream with the name [" + inputName + "] in the invocation stack. " +
"Check the <param name=\"inputName\"> tag specified for this action.");
LOG.error(msg);
throw new IllegalArgumentException(msg);
}
解决方法:
a) 配置文件:
<result type="stream" name="SUCCESS">
<param name="inputName">inputStream</param>
</result>
b)java代码:
定义变量:
private InputStream inputStream;
并生成getter/setter方法
方法里:
filePath = ServletActionContext.getServletContext().getRealPath("/Webcontent下的文件夹名/") + filePath;
File file = new File(filePath);
inputStream = new FileInputStream(file);
分享到:
相关推荐
6. **异常处理**:系统需有完善的异常处理机制,当出现网络问题、数据库错误等情况时,能给出友好的提示,保证用户体验。 7. **日志记录**:系统应记录用户的操作日志,以便于问题排查和数据分析。 在开发过程中,...
在SSH(Struts2、Spring、Hibernate)架构的项目中,使用jQuery与后台进行交互是常见的做法,特别是在处理异步请求时。本示例主要介绍了如何利用jQuery通过JSON与Struts2的Action进行数据交换,从而实现前端与后端的...
总的来说,基于Struts的网上汽车租赁系统是一个涵盖用户交互、业务逻辑和后台管理的综合系统,它充分利用了Struts框架的优势,实现了高效、可扩展的Web应用。从数据库设计到前端展示,每一个环节都体现了良好的软件...
2. **数据绑定**:将后台数据库或业务逻辑处理的结果数据与报表模板进行绑定。jasperreports支持多种数据源,如JDBC、XML、JSON等,可以根据实际项目需求选择合适的数据提供方式。 3. **生成PDF**:在Flex客户端,...
SSH航空订票系统是一款基于SSH(Struts2、Spring、Hibernate)框架开发的在线订票应用,主要用于模拟航空公司售票流程,提供用户购票、查询航班、管理个人信息等服务。SSH框架是Java Web开发中的一个经典组合,它将...
这些文件定义了用户界面,通过Struts的Action转发机制,将用户的交互操作转化为后台的业务处理。JSP页面通常包含JSTL标签库和EL表达式,可以方便地与后台数据进行交互,展示计费信息。 在计费系统的设计上,通常会...
根据文件上传的成功与否,`execute`方法会返回不同的字符串结果,如`"success"`或`"error"`,这些结果会被`Struts2`框架解析,并根据配置决定如何向客户端发送响应。 在前端,使用`Ajaxfileupload`插件时,需要...
Struts作为MVC(模型-视图-控制器)框架,负责用户界面与后台逻辑的交互。Spring则提供依赖注入(DI)和面向切面编程(AOP),以解耦组件并简化测试。Hibernate通过ORM(对象关系映射)技术,将Java对象与数据库表...
short 16bit, -2^15~2^15-1 (2^15=32768) int 32bit, -2^31~2^31-1 (2147483648,20亿,10位有效数字) long 64bit, -2^63~2^63-1 (900亿亿,20位有效数字) float 32bit, 9位有效数字,含小数(四舍五入)(小数点算...
此外,可能还利用了Spring MVC或Struts2等成熟的Servlet框架,它们提供了更高级别的抽象,简化了开发流程,增强了系统性能和稳定性。 系统的关键功能可能包括: 1. **用户管理**:对酒店员工进行注册、登录、权限...
对象" items="${前台打印的列表}" varStatus="status"> ${对象.对象的属性名称}">${对象.对象的属性名称} ``` ### 2. JavaScript/jQuery 接下来,我们使用jQuery的`getJSON`方法来实现动态获取城市数据的...