java - 使用 Java、Struts 2 和 AJAX 下载文件

标签 java ajax jsp download struts2

我想使用java、struts2和ajax进行文件下载。

在我的 html 页面上有一个名为“导出”的按钮,单击该按钮将进行 ajax 调用,这将执行查询并使用代码创建 .xls 文件,我想将该文件提供给用户下载而不存储它在硬盘上。

有谁知道如何在 java 中使用 struts2 和 ajax 来做到这一点?

有没有例子?

如果您需要我提供更多详细信息,请告诉我...

谢谢。

amar4kintu

最佳答案

在这种情况下您不必使用 AJAX。只需让您的按钮将表单提交给您的 Struts 操作,并让操作使用 stream result类型。

例子:

在您的 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 - 使用 Java、Struts 2 和 AJAX 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2122490/

相关文章:

jsp - 检查 Java Web 应用程序的 JSP 的编译大小

javascript - 通过javascript中的动态内容查找div的最大高度

java - 在现有 tomcat 中部署我的应用程序

java - 如何实现集群中的每个节点都接受来自 Google pub/sub 主题的消息?

ajax - ASP.NET AJAX 部分呈现可以在 SharePoint 2007 应用程序页面内工作吗?

java - ANTLR 没有为 Scala 语法提供正确的输出标记

javascript - ajax 函数内的 ajax 函数

c# - 用户 session ID 作为 Ajax 调用中的参数

java - 在运行时检索 Log4J Appenders 列表

java - 如何在所有映射器中使用相同的数据?