`
足至迹留
  • 浏览: 495610 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

struts2下载excel文件

阅读更多
1. 问题描述
最近在做一个小程序,要求能把查询记录导成excel并供前端下载。
1).导出excel功能使用jxl实现(当然也可以使用功能更强的poi,但小巧的jxl性能更好些)。
2).下载功能却遇到点小问题。
struts配置:
<action name="download" class="com.harmonywisdom.emergency.smsplatform.action.DownloadAction">
			<result name="success" type="stream">
				<!--设置为excel类型 -->
				<param name="contentType">application/vnd.ms-excel;charset=ISO8859-1</param>
				
				<!--下载文件流 -->
				<param name="inputName">inputStream</param>

				<!--添加参数,即就是下载的名称 -->
				<param name="contentDisposition">attachment;filename="${fileName}"</param>

				<!--缓存 -->
				<param name="bufferSize">4096</param>
			</result>
		</action>

这里的几个参数都很重要,首先是result的类型是stream, 其次contentType指明excel,接着是action要有getInputStream()方法,下面就是contentDisposition必须有attachment属性,代表是作为附件下载而不是直接打开。filename就是传给action的文件名,通过getInputStream()返回该文件的流。一切都没有问题。

ajax请求
前端页面采用的ajax请求下载,遇到了麻烦,无论get还是post都不行,就是弹不出保存文件对话框,如果浏览器收到了文件流就会自动弹出保存框。这说明浏览器确实没有收到流,F12查看下ajax请求,果然,成功收到了响应,但响应内容都是字符串。呀,ajax接收的内容本来就都会转成字符串(xml或text)的。所以不能采用ajax来请求下载。

2. 解决
很明确,把ajax改成下面即可:
location.href="/app/sms/download.action?fileName=" + data;


或者其他解决办法,比如设置一个<a>标签,href请求action。总之要保证浏览器收到的是流,而不是字符串。
分享到:
评论

相关推荐

    struts2实现excel导出

    在客户端,用户可以通过点击一个链接或按钮触发这个Action,浏览器将弹出一个对话框让用户选择保存或打开生成的Excel文件。 这就是使用Struts2和Apache POI实现Excel导出的基本步骤。注意,实际的项目可能需要考虑...

    Struts2文件流方式导出下载excel、Txt、image图片

    通过上述步骤,我们就可以在Struts2框架下实现文件流方式的下载功能,无论是Excel、TXT还是图片,都能有效地直接返回给浏览器,让客户端进行下载。这种方式既节省了服务器资源,也提高了用户体验。在实际项目中,...

    struts2导出excel java 导出excel JXL

    struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包

    Struts2+Excel导出Demo,测试可用带JAR包

    5. **响应流**: 为了将生成的Excel文件发送到浏览器,你需要将Excel内容转换为字节流,并设置响应头,告知浏览器这是一个Excel文件,例如设置Content-Type为"application/vnd.ms-excel"。 6. **Struts2配置**: 配置...

    Struts实时生成Excel文件下载

    Struts实时生成Excel文件下载

    struts2生成Excel文件上传下载

    项目:Struts2UpAndDownLoadFile 1.实现文件的上传和下载 项目:Struts2HandleExcelFile 1.实现文件的上传和下载 2.利用apache的poi-3.5-FINAL-20090928.jar组件实现创建Excel表格。

    struts2 支持的下载以及如何动态生成excel表格文件

    总的来说,Struts2提供了便捷的方式来处理文件下载,而Apache POI使我们能够在Java中动态生成Excel文件,这两者结合为Web应用提供了强大的文件操作能力。在实际开发中,你需要根据具体的需求进行适当的调整和优化,...

    Struts2+Excel导入功能 完整美运行有JAR包

    在Struts2中实现Excel导入功能,可以让用户上传Excel文件,然后在服务器端进行数据处理,例如存储到数据库或者进行数据分析。 在描述中提到的“完整美运行有JAR包”,意味着这个压缩包可能包含了所有必要的库文件,...

    struts2 Excel导入数据库

    总结,这个项目展示了如何结合Struts2的MVC架构、Apache POI的Excel处理能力和JDBC的数据库操作,实现从Excel文件批量导入数据到SQL Server 2000数据库的功能。这个过程涉及文件上传、数据读取、数据库交互等多个...

    struts2中利用poi导出excel

    为了将生成的Excel文件发送给用户下载,我们需要在Struts2的配置文件(struts.xml)中定义一个Result类型,例如`stream`,然后在Action类中设置响应头信息,并将工作簿写入到OutputStream中。 ```xml ...

    struts2导出excel笔记

    通过以上步骤,我们可以实现一个简单的Struts2应用,该应用能够根据用户请求,使用Apache POI库动态生成并导出Excel文件。在实际项目中,可能还需要考虑数据过滤、排序、分页等功能,以及与数据库的交互,这些都可以...

    Struts2 Excel导入导出数据

    在处理数据导入导出方面,Struts2提供了强大的支持,特别是与Excel文件的交互。本教程将深入探讨如何利用Struts2实现从Oracle数据库导出数据到Excel,以及如何将Excel文件中的数据导入到Oracle。 首先,我们需要...

    Struts2+JXL 下载 Excel 文档

    3. **返回结果**:当Action执行完成,Struts2框架会根据配置的result类型(这里为stream)将excelStream内容写入HTTP响应,用户即可下载Excel文件。 这个过程中,开发者需要注意一些关键点,比如异常处理、内存管理...

    struts2整合apache的jxl导入导出excel表格

    此方法接受一个包含多种数据类型的列表,并返回一个 `InputStream`,该流可以被 Struts2 动作类用来生成并下载 Excel 文件。 3. **服务层接口实现**: 创建 `ExcelServiceImpl` 类来实现 `IExcelService` 接口。在...

    struts2 poi导出到excel

    这样,当用户访问特定的URL时,服务器就会触发`ExportExcelAction`的`execute`方法,生成Excel文件并发送给客户端下载。 总结一下,Struts2结合Apache POI实现数据导出到Excel的关键步骤包括: 1. 引入Apache POI的...

    struts2+poi实现导出Excel文件

    Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...

    struts1 poi Excel批量导入支持xls和xlsx-源码java

    总之,这个源码项目展示了如何结合Struts1的MVC架构和Apache POI的强大功能,实现对Excel文件的高效批量导入,同时支持两种主要的Excel文件格式。通过学习和理解这个项目,开发者可以提升在Web应用中处理Excel数据的...

    Struts2 poi动态导入导出Excel源码示例

    例如,你可以定义一个`importExcel`方法来接收上传的Excel文件,以及一个`exportExcel`方法用于生成并下载Excel文件。 2. **上传文件**: Struts2支持文件上传,你需要在struts.xml配置文件中启用这个特性,并在...

    JSP Struts2 分页 导出Excel

    - 当用户选择导出Excel时,Action创建Excel文件,设置响应头并返回。 - 用户在浏览器中触发文件下载,保存到本地。 通过以上步骤,我们可以构建一个功能完整的Web应用,实现从查询、分页到导出Excel的流程。在...

    struts2导出excel.rar

    要使Struts2能够处理Excel导出,需要在struts.xml配置文件中添加相应的Action配置,指定Action类和对应的Result类型,例如`stream`类型,这样可以将生成的Excel文件作为流返回给浏览器。 7. **安全考虑** 当实现...

Global site tag (gtag.js) - Google Analytics