使用Java,Struts 2和AJAX下载文件
我想使用java,struts2和ajax下载文件。
在我的html页面上,有一个名为“导出”的按钮,单击该按钮将进行ajax调用,它将执行查询并使用代码创建.xls文件,我想将该文件提供给用户下载而不将其存储在硬盘上。
有谁知道如何在Java中使用struts2和ajax来做到这一点?
有没有可用的例子?
如果您需要我提供更多详细信息,请告诉我…
谢谢。
amar4kintu
回答:
在这种情况下,您不必使用AJAX。只需让您的按钮将表单提交给您的Struts操作,然后使该操作使用流结果类型即可。
例:
在您的Struts XML中:
<result name="download" type="stream"> <param name="contentDisposition">attachment;filename=report.xls</param>
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">inputStream</param>
<param name="bufferSize">1024</param>
</result>
然后,您的操作将提供一个public InputStream getInputStream()
传递数据。
我认为无论您使用什么库来生成Excel文件(POI?),都可以将输出写入任意文件OutputStream
。
一种将其转换为的快捷方法InputStream
:
// Using Workbook from Apache POI for example...Workbook wb;
// ...
ByteArrayOutputStream bos = new ByteArrayOutputStream();
wb.write(bos);
InputStream bis = new ByteArrayInputStream(bos.toByteArray());
以上是 使用Java,Struts 2和AJAX下载文件 的全部内容, 来源链接: utcz.com/qa/413365.html