首页 > 代码库 > struts2 文件下载 报错
struts2 文件下载 报错
程序错误:
学习struts框架时,关于文件下载部分,利用struts中的stream结果类型来实现,配置完成之后,运行程序,报错如下:
HTTP Status 500 - Can not find a java.io.InputStream with the name [downFile] in the invocation stack. Check the <param name="inputName"> tag specified for this action.
错误分析:
1、struts.xml配置文件中关于action部分的配置不对
<action name="downloadfile" class="com.shengsiyuan.struts2.DownloadAction"> <result name="success" type="stream"> <param name="contentDisposition">attachment;filename="BeginLinuxProgramming.pdf"</param> <param name="inputName">downFile</param> </result> <action>
特别注意:inputName中指定的参数对应于Action中的相应的返回InputStream的get方法
public InputStream getDownloadFile(){}
底层的原理是基于struts的valuestack+反射原理自动实现get/set方法。
2、指定文件路径下,不存在指定的文件
3、get方法中返回InputStream的方法不对,方法本身可能返回为null
InputStream is=ServletActionContext.getServletContext().getResourceAsStream("D:\\BeginLinuxProgramming.pdf");
如果使用getServletContext方法,网上的说法是文件必须保存在ServletContext中,千辛万苦实在不知道如何保存到servletContext中,直接改为:
File file = new File("D:\\BeginLinuxProgramming.pdf"); InputStream fileIStream = null; try { fileIStream= new FileInputStream(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return fileIStream;
struts2 文件下载 报错
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。