使用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

回到顶部