`

Struts2 下载成功,但是后台打印有异常

阅读更多
   现象:
   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. **日志记录**:系统应记录用户的操作日志,以便于问题排查和数据分析。 在开发过程中,...

    Jquery通过JSON和Struts的Action交互[参照].pdf

    在SSH(Struts2、Spring、Hibernate)架构的项目中,使用jQuery与后台进行交互是常见的做法,特别是在处理异步请求时。本示例主要介绍了如何利用jQuery通过JSON与Struts2的Action进行数据交换,从而实现前端与后端的...

    基于struts的网上汽车租赁系统

    总的来说,基于Struts的网上汽车租赁系统是一个涵盖用户交互、业务逻辑和后台管理的综合系统,它充分利用了Struts框架的优势,实现了高效、可扩展的Web应用。从数据库设计到前端展示,每一个环节都体现了良好的软件...

    jasperreports+alivepdf+Flex解决打印和导出PDF问题

    2. **数据绑定**:将后台数据库或业务逻辑处理的结果数据与报表模板进行绑定。jasperreports支持多种数据源,如JDBC、XML、JSON等,可以根据实际项目需求选择合适的数据提供方式。 3. **生成PDF**:在Flex客户端,...

    ssh航空订票系统

    SSH航空订票系统是一款基于SSH(Struts2、Spring、Hibernate)框架开发的在线订票应用,主要用于模拟航空公司售票流程,提供用户购票、查询航班、管理个人信息等服务。SSH框架是Java Web开发中的一个经典组合,它将...

    telecomAccount.rar_telecom java_计费系统

    这些文件定义了用户界面,通过Struts的Action转发机制,将用户的交互操作转化为后台的业务处理。JSP页面通常包含JSTL标签库和EL表达式,可以方便地与后台数据进行交互,展示计费信息。 在计费系统的设计上,通常会...

    jquery ajaxfileupload异步上传插件

    根据文件上传的成功与否,`execute`方法会返回不同的字符串结果,如`"success"`或`"error"`,这些结果会被`Struts2`框架解析,并根据配置决定如何向客户端发送响应。 在前端,使用`Ajaxfileupload`插件时,需要...

    SSH的配置、事务管理和Log4j的配置

    Struts作为MVC(模型-视图-控制器)框架,负责用户界面与后台逻辑的交互。Spring则提供依赖注入(DI)和面向切面编程(AOP),以解耦组件并简化测试。Hibernate通过ORM(对象关系映射)技术,将Java对象与数据库表...

    整理后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位有效数字,含小数(四舍五入)(小数点算...

    基于java jsp酒店管理系统 带word文档

    此外,可能还利用了Spring MVC或Struts2等成熟的Servlet框架,它们提供了更高级别的抽象,简化了开发流程,增强了系统性能和稳定性。 系统的关键功能可能包括: 1. **用户管理**:对酒店员工进行注册、登录、权限...

    jquery实现二级联动

    对象" items="${前台打印的列表}" varStatus="status"&gt; ${对象.对象的属性名称}"&gt;${对象.对象的属性名称} ``` ### 2. JavaScript/jQuery 接下来,我们使用jQuery的`getJSON`方法来实现动态获取城市数据的...

Global site tag (gtag.js) - Google Analytics