`

struts2文件下载的参数

阅读更多

       以前希望考研,对所用到的东西都是浅尝辄止。现在突然觉得考研的决定是自己失去了好多好多,人就应该面对现实,面对责任,而不是追求梦想而脱离实际。废话不多说了,让我分享一下struts2下载时候参数的配置。

 

1。annotation实现

 

@Results( { @Result(name = "success", type = "stream", params = {
				"contentType", "application/octet-stream;charset=ISO8859-1",
				"inputName", "inputStream", 
				"contentDisposition","attachment;filename=\"${fileName}\"", 
				"bufferSize", "4096" 
			})
		})

 2。xml配置

 

 

<action name="download" class="com.lizw.FileDownloadAction">  
            <result name="success" type="stream">  
                <param name="inputName">inputStream</param>  
                <param name="contentType">application/octet-stream</param>  
                <param name="contentDisposition">filename=${fileName}</param>  
                <param name="bufferSize">2048</param>  
            </result>  
        </action>  

 下面针对各个参数详细解释一下:

 

 

contentType :
内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片 
 
inputName :
下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream的属性需要编写getInputStream()方法 
 
contentDisposition :
文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:
attachment;filename="readme.txt",表示文件下载的时候保存的名字应为readme.txt。如果直接写filename="readme.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="readme.txt" 
 
bufferSize :
下载缓冲区的大小

 

 

 

对struts2下载流的理解:

   action中定义一个返回InputStream的方法,该方法作为被下载文件的入口,且需要配置stream类型结果时指定inputName参数,inputName参数的值就是方法去掉get前缀、首字母小写的字符串。

 

 

 

对应的核心Java代码:

 

	// 如果下载文件名为中文,进行字符编码转换
	public String getDownloadFileName() {
		String downloadFileName = fileName;

		try {
			downloadFileName = new String(downloadFileName.getBytes(),
					"ISO8859-1");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

		return downloadFileName;
	}

	public InputStream getInputStream() throws Exception {
		/**
		 * 下载用的Action应该返回一个InputStream实例, 该方法对应在result里的inputName属性值为targetFile
		 */
		return ServletActionContext.getServletContext().getResourceAsStream(
				STORAGEPATH);
	}

	public String execute() throws Exception {
		return SUCCESS;
	}

 

分享到:
评论

相关推荐

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    Struts2之struts2文件下载详解案例struts012

    在Struts2中处理文件下载是常见的需求,比如用户请求下载服务器上的文件,如PDF、图片或其他类型的文档。本案例"Struts2之struts012"将深入探讨如何在Struts2中实现文件下载的功能。 首先,我们需要创建一个Action...

    Struts的文件下载

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

    struts2 向结果传参数

    Struts2支持多种内置结果类型,如`dispatcher`(默认的,用于转发到JSP)、`stream`(用于处理文件下载)和`redirectAction`(用于重定向到另一个Action)。每个结果类型都有其特定的配置方式来传递参数。 1. **在...

    Struts2+Jquery+Ajax

    "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...

    struts2资源下载,struts2资源下载

    在"struts2资源下载"中,我们可以获取到与Struts2相关的各种资料,包括但不限于教程、示例代码、API文档、安全补丁以及社区提供的插件等,这些都对学习和使用Struts2框架极其有益。 Struts2的核心功能包括: 1. **...

    struts2验证框架参数

    在深入探讨Struts2验证框架参数之前,我们首先简要回顾一下Struts2框架本身。Struts2是基于MVC(Model-View-Controller)设计模式的Java Web应用框架,它提供了一种灵活的方式来构建可扩展的企业级Web应用程序。...

    Struts2接口文档

    “Struts2.3.1.2_API.chm”文档包含了Struts2框架的详细API,其中涵盖了各个主要类和接口的解释、方法签名、参数说明以及返回值类型。开发者可以通过查阅此文档,快速查找特定功能的实现方式,例如ActionSupport类,...

    Struts2 Struts2 超好的Struts2 pdf 文档

    4. **结果类型(Result Types)**:Struts2支持多种结果类型,如`dispatcher`(默认,将结果转发到JSP页面)、`stream`(用于文件下载)、`redirect`(重定向URL)等,可以根据不同的需求选择合适的结果类型。...

    struts2参数配置

    ### Struts2参数配置详解 #### 一、概述 在深入了解Struts2框架时,我们不可避免地会接触到各种参数配置。这些配置对于整个框架的运行至关重要。本文将围绕Struts2中的关键配置进行深入探讨,旨在帮助开发者更好地...

    struts2 接收参数

    在`Struts2_0900_ModelDrivenParamInput`这个文件中,可能包含了关于Struts2 0.9.0版本如何处理ModelDriven模式下参数输入的示例代码。ModelDriven模式简化了Action类的编写,使得业务逻辑更专注于处理业务,而不是...

    Struts2文件上传与下载

    2. **创建Action类**:定义一个Action类,该类通常包含一个用于接收文件的字段,使用`@Params`注解指定参数类型为`java.io.File`或`org.apache.struts2.dispatcher.multipart.UploadedFile`。 ```java public ...

    基于Struts2的文件上传下载功能的完整源代码。

    在Struts2中,你需要配置`struts.xml`文件来启用文件上传插件,并指定允许的最大文件大小、存储路径等参数。 在Action类中,`upload()`方法接收上传的文件,并使用`FileItem`接口来处理每个部分。`FileItem`对象...

    Struts2中Action接收参数的方法

    Struts2 中 Action 接收参数的方法 Struts2 框架中,Action 组件可以通过多种方式接收参数,这些方式包括使用 Action 的属性、使用 DomainModel 和使用 ModelDriven。下面将详细介绍这些方法: 使用 Action 的属性...

    Struts2 Action参数详细说明

    在Struts2的配置文件(通常是struts.xml)中,Action的基本配置结构如下: ```xml 包名字" extends="继承的包" namespace="空间名"&gt; 访问的名称" class="处理请求的类"&gt; 处理类返回的结果名称"&gt;该结果名称所对应...

    struts2 action跳转action传参数

    ### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...

    struts2文件下载

    在这个示例中,我们将深入探讨如何通过Struts2实现文件下载功能。 首先,我们来看一下文件下载的基本流程。当用户点击下载链接时,浏览器会向服务器发送一个新的请求,这个请求的目标是特定的Action,即`...

    Struts2教学视频

    3. 创建Struts2的配置文件struts.xml,定义Action、包(package)、namespace等。 **三、Namespace** Namespace是Struts2中用于组织Action的一种方式,可以看作是Action的命名空间。它有助于避免Action名称冲突,同时...

    struts2上传下载项目

    在"struts2上传下载项目"中,我们可以深入理解如何利用Struts2实现文件的上传与下载功能。 首先,上传功能在Web应用中十分常见,比如用户在注册时上传头像,或者提交文档等。在Struts2中,我们主要借助`struts2-...

Global site tag (gtag.js) - Google Analytics