`
serenity
  • 浏览: 62463 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转:Struts 2 下载文件(12)上

阅读更多

11.3  Struts 2控制文件下载

文件下载相对于文件上传要简单得多,最简单的方式就是直接在页面上给出一个下载文件的链接,使用Struts 2框架来控制文件的下载,关键是需要配置一个stream类型的结果,需要指定下面4个属性。

— contentType属性:指定被下载文件的文件类型。

— inputName属性:指定被下载文件的入口输入流。

— contentDisposition属性:指定下文件的文件名称。

— bufferSize属性:指定下载文件时的缓冲区大小。

配置上面4个属性,既可以在配置文件中配置,也可以在Action中设置该属性来完成配置。

11.3.1  在配置文件中指定下载资源

下面给出在配置文件中指定下载资源的示例,如代码11.9所示。

代码11.9  文件下载业务控制器

 

package ch11;

import java.io.InputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;

public class FileDownloadAction implements Action {

    
private String inputPath;

    
public void setInputPath(String value) {

        inputPath 
= value;

    }


    
//返回一个InputStream类型值

    
public InputStream getInputStream() throws Exception {

        
return ServletActionContext.getServletContext().getResourceAsStream (inputPath);

    }


    
public String execute() throws Exception {

        
return SUCCESS;

    }


}


 

Action非常简单,并没有其他特殊之处,关键在于配置文件中关于该Action的配置,其内容如下所示:

 

<!--配置文件定义文件下载-->

        
<action name="download" class="ch11.FileDownloadAction">

            
<!--指定下载资源位置-->

            
<param name="inputPath">/upload/struts-power.gif</param>

            
<!--指定success逻辑视图为一个stream类型,即流视图-->

            
<result name="success" type="stream">

                
<!--下载文件的类型-->

                
<param name="contentType">image/gif</param>

                
<!--下载文件位置-->

                
<param name="inputName">inputStream</param>

                
<param name="contentDisposition">

                    filename="struts.gif"

                
</param>

                
<!--缓冲区大小-->

                
<param name="bufferSize">4096</param>

            
</result>

</action>

 

读者可以看到,该Action指定了一个success返回逻辑视图,该视图类型为stream,即一个流类型,即需要下载的资源流。本示例中,在该success逻辑视图中增加了4个参数,参数contentType指定了下载资源的类型;inputName参数和contentDisposition参数指定了下载资源的位置;bufferSize参数指定了下载资源的缓冲区大小。

Action配置中,初始化了一个inputPath参数,即指定了下载资源的Web相对位置。读者可以运行该示例,在浏览器中输入http://localhost:8080/bookcode/ch11/download.action,结果如图11.11所示。

11.11  Struts 2控制文件下载界面

 

分享到:
评论

相关推荐

    struts2核心文件

    4. **配置文件**: `struts.xml`是Struts2的主要配置文件,定义了Action、Interceptor、结果类型等。通过这个文件,开发者可以控制Action的映射、拦截器链的设置以及结果的跳转规则。 5. **Plug-in(插件)**: ...

    struts2实现文件下载功能

    在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...

    第八章:struts2文件上传下载.ppt

    第八章:struts2文件上传下载.ppt

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

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

    Struts2提供了文件流的方式来实现这一需求,这种方式避免了在服务器上生成临时文件,提高了效率并减少了服务器存储空间的占用。下面将详细讲解如何使用Struts2的文件流技术来实现这些功能。 首先,我们需要理解文件...

    Struts的文件下载

    在Struts中实现文件下载是一项常见的功能,尤其在处理用户请求获取服务器上的静态或动态资源时。这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载...

    struts2_uploadify带进度条的多文件上传下载

    总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...

    struts2实现文件下载实例源代码

    在Struts2中实现文件下载的功能,可以帮助用户从服务器获取并保存文件到本地计算机,例如这里的"1.xls"文件。下面我们将深入探讨如何在Struts2框架下实现文件下载的实例。 首先,我们需要在项目的Web应用目录结构中...

    struts2 最新版 不用去官网上下载了

    8. **安全性**: Struts2提供了多种安全相关的拦截器,如CSRF防护,但历史上曾出现过一些著名的安全漏洞,如Struts2 S2-045,提醒开发者要保持框架版本及时更新。 关于描述中提到的邮箱资源,这可能是作者为了方便...

    个人总结:Struts2 上传文件的六种方法

    Struts2作为一款流行的Java Web框架,提供了多种方式来实现文件上传功能。下面将详细介绍在Struts2中实现文件上传的六种方法,并探讨如何将文件数据保存到数据库中。 1. **Struts2默认的FileUpload拦截器** Struts...

    struts2解析文件

    - **配置文件**: Struts2的配置文件通常包括struts.xml,用于定义Action、结果类型、拦截器等。配置文件可以声明式地控制应用的行为。 - **ModelDriven接口**: 这是一个常用的Action实现接口,用于将模型对象绑定到...

    struts2文件上传和下载

    在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...

    struts2文件上传下载

    在Struts2中,你可以在Action类中定义一个方法,该方法读取服务器上的文件内容并设置响应头,以便浏览器能够正确地处理下载。例如,你可以设置`Content-Disposition`头来指定文件名,以及`Content-Type`头来指定文件...

    struts2所有jar包程序文件

    在下载并解压"struts2所有jar包"后,开发者需要将lib目录下的所有jar文件添加到项目构建路径中,确保运行时可以找到所有依赖。对于Maven或Gradle用户,可以通过在pom.xml或build.gradle文件中指定相应的依赖项,实现...

    IBM Struts2培训PPT.7z

    IBMStruts2培训PPT (大全集) 主讲:刘雷 完整实用 第一章:认识体验Struts2.ppt 第二章:struts2架构剖析.ppt ...第八章:struts2文件上传下载.ppt 第九章:struts2拦截器.ppt + Struts2开发详解.ppt

    struts框架-文件上传下载

    2. Struts2中的文件上传:Struts2提供了更简洁的文件上传方式。在JSP页面中,可以使用`&lt;s:file&gt;`标签来创建文件选择控件。在Action类中,使用`@SkipValidation`注解标记文件上传方法,然后定义对应的`java.io.File`...

    Struts2知识点

    Struts2 的安装非常简单,只需要下载 Struts2 的 Full Distribution,解压缩到指定的目录中,然后安装 MyEclipse 和 Tomcat 即可。 2. Struts2 项目的建立: Struts2 项目的建立可以通过 MyEclipse 或 Eclipse 等 ...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送Maven依赖信息文件:struts2-json-plugin-2.3.24.pom; 包含翻译后的API文档:struts2-json-plugin-2.3.24-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.struts:struts2-json-plugin:2.3.24; ...

Global site tag (gtag.js) - Google Analytics