转帖 谢谢
说明:
下载是通过StreamResult类来实现,这是一个自定义结果类型,主要作用是直接向HttpServletResponse对象发送原始数据。 StreamResult假定Action会提供一个输入流的访问方法,并将这个输入流输出到响应对象中。
SteamResult还提供如下配置属性:
contentType :
内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片
inputName :
下载文件的来源流,对应着action类中某个类型为Inputstream的方法名,例如取值为inputStream的属性需要编写getInputStream()方法
contentDisposition :
文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:
attachment;filename="struts2.txt",表示文件下载的时候保存的名字应为struts2.txt。如果直接写filename="struts2.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="struts2.txt"
bufferSize :
下载缓冲区的大小。
在这里面,contentType属性和contentDisposition分别对应着HTTP响应中的头Content-Type和Content-disposition头
下面是一个StreamResult的配置示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="xg" namespace="/" extends="struts-default">
<action name="ProjectNeedsAction" class="projectNeedsAction" >
<!-- 下載配置 -->
<result name="success" type="stream">
<!-- 下載類型和編碼配置 -->
<param name="contentType"> application/octet-stream;charset=UTF-8</param>
<!-- action中提供输入流的方法名称,缺省为inputStream -->
<param name="inputName">inputStream</param>
<!-- 指定下載名:name对应action类中的方法 getName() -->
<param name="contentDisposition">attachment;filename="${name}"</param>
<!-- 緩存 -->
<param name="bufferSize">4096</param>
</result>
</package>
</struts>
分享到:
相关推荐
用struts2实现下载
Struts2作为Controller层,通过Action类来实现业务逻辑,并通过配置文件或注解来定义Action与URL的映射关系。 Jquery是一个高效的JavaScript库,简化了HTML文档遍历、事件处理、动画以及Ajax交互。它使得开发者能更...
在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...
Struts2是Apache软件基金会的一个开源项目,它在Struts1的基础上进行了许多改进,提供了更灵活的MVC(Model-View-Controller)实现。 Struts2的核心概念主要包括: 1. **Action**:Action是业务逻辑的载体,负责...
本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...
网上的Struts2进行的文件下载一般都是单文件或者固定的文件,并没有(很少)实现随意文件的下载的例子 提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载...
在Struts2中实现文件下载的功能,可以帮助用户从服务器获取并保存文件到本地计算机,例如这里的"1.xls"文件。下面我们将深入探讨如何在Struts2框架下实现文件下载的实例。 首先,我们需要在项目的Web应用目录结构中...
在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与下载。 文件上传在Web应用中很常见,例如用户提交表单时可能需要附加文件,如简历、图片或文档等。Struts2提供了一套完整的机制...
在Struts2中实现下载功能是一项常见的需求,这通常涉及到处理文件流并将其发送到客户端。以下是如何在Struts2中实现下载功能的详细步骤: 1. **Struts2配置**: 在Struts2的配置文件(例如struts.xml或类似的配置...
以上就是使用Struts2实现文件上传的基本步骤。需要注意的是,实际项目中还需要考虑文件的安全性,比如防止恶意文件上传、文件覆盖、文件大小控制等。此外,随着技术的发展,现代的前端框架如React、Vue等通常会与...
4. **插件支持**:Struts2拥有丰富的插件库,可以实现AJAX、上传下载、国际化、数据验证等功能。例如,Struts2-dojo-plugin提供了与Dojo库的集成,使得Web应用可以使用富客户端功能。 5. **异常处理**:Struts2提供...
这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`<input type="file">`...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
JSP开发之Struts2实现下载功能的实例 1、Action 类 package com.favccxx.strutsdemo; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import ...
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的文件上传功能。 首先,我们注意到一个细节描述:“private String uploadContextType;应更正为private String ...
3. **Interceptor**:拦截器是Struts2的一个强大特性,它们在Action调用前后执行,可以实现如日志记录、权限验证等功能。 4. **配置文件**:struts.xml是Struts2的主要配置文件,定义了Action、Result和Interceptor...
很多Struts2的功能都是基于XWork实现的。 3. **ognl.jar**:OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。在Struts2中,OGNL用于传递Action与视图之间的数据,...
3. 实现:使用 Struts2 框架实现项目的功能。 4. 测试:对项目进行测试和调试。 5. 部署:将项目部署到生产环境中。 Struts2 框架的技术架构 Struts2 框架的技术架构主要包括以下几个部分: 1. Action:负责处理...
struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中实现文件上传 struts2中实现CRUD struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2与AJAX二 struts2与AJAX三 struts2...