Zoo*_*ork 11
在这种情况下,您不必使用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>
Run Code Online (Sandbox Code Playgroud)
然后,您的操作将提供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());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26268 次 |
最近记录: |