<action name="download" class="com.unmi.action.DownloadAction">
<result name="success" type="stream"><!--type 为 stream 应用 StreamResult 处理-->
<param name="contentType">application/octet-stream</param><!--默认为 text/plain-->
<!-- 默认就是 inputStream,它将会指示 StreamResult 通过 inputName 属性值的 getter 方法,
比如这里就是 getInputStream() 来获取下载文件的内容,意味着你的 Action 要有这个方法 -->
<param name="inputName">inputStream</param>
<!-- 默认为 inline(在线打开),设置为 attachment 将会告诉浏览器下载该文件,filename 指定下载文
件保有存时的文件名,若未指定将会是以浏览的页面名作为文件名,如以 download.action 作为文件名,
这里使用的是动态文件名,${fileName}, 它将通过 Action 的 getFileName() 获得文件名 -->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param><!-- 输出时缓冲区的大小 -->
</result>
</action>
package com.unmi.action;
import java.io.*;
import java.text.*;
import java.util.Date;
/**
* 文件下载的 Action
* @author Unmi
*/
public class NetbookSerialAction {
public String execute() throws Exception {
//这里可加入权限控制
return "success";
}
//获得下载文件的内容,可以直接读入一个物理文件或从数据库中获取内容
public InputStream getInputStream() throws Exception {
//return new FileInputStream("somefile.rar"); 直接下载 somefile.rar
//和 Servlet 中不一样,这里我们不需对输出的中文转码为 ISO8859-1
return new ByteArrayInputStream("Struts2 文件下载测试".getBytes());
}
//对于配置中的 ${fileName}, 获得下载保存时的文件名
public String getFileName() {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String fileName = "序列号(" + df.format(new Date()) + ").txt";
try {
//中文文件名也是需要转码为 ISO8859-1,否则乱码
return new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
return "impossible.txt";
}
}
}
分享到:
相关推荐
Struts2 Result 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....
除了默认的Dispatcher Result,Struts2还提供了多种内置的Result Types,如Redirect、RedirectAction、Stream、Httpheader等。每种Result Type都有其特定的用途: 1. **Redirect**:此结果类型会触发HTTP的302临时...
在Struts2框架中,`Result`类型是动作(Action)执行后的一种处理方式,它定义了动作执行完后页面跳转或者数据处理的行为。`Redirect`是`Result`类型中的一种,它涉及到Web应用程序中的URL重定向概念,对用户浏览器...
在Struts2中,`Result`标签是核心组件之一,用于定义动作执行后如何跳转到相应的视图。让我们深入探讨一下`Result`标签的使用以及在Struts2框架中的作用。 ### 1. Struts2框架概述 Struts2框架基于MVC设计模式,...
在Struts2中,Action是业务逻辑的核心,而Result则是Action执行后的响应方式。`Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理...
Struts2 Result类型是Struts2框架中一个关键的概念,它是控制Action执行后响应到何处的重要组件。在处理用户请求并执行相应的业务逻辑后,Action需要将结果返回给客户端,而Result类型就是用来定义这个返回过程的...
Result是Struts2框架中的一个核心组件,它负责处理动作执行后的结果,如视图渲染、跳转等操作。在Struts2的学习过程中,理解并熟练运用Result类型是至关重要的。 在Struts2中,Result主要负责将处理后的数据传递给...
Struts2支持多种Result类型,如dispatcher(用于转发到JSP页面)、redirect(用于重定向)和stream(用于流式下载)等。 **问题分析** 题目中提到的问题可能涉及到拦截器无法正确处理或影响到Result的执行。这可能...
在Struts2中,结果(Result)是Action执行后控制流程的重要部分,它负责将处理后的数据或者控制逻辑转向合适的视图。这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本...
在struts2中使用result里type="stream"的结果类型时,可以实现文件的下载管理,使用时也是比较顺畅,但是当在“下载提示窗口”中点击“取消按钮”时,总是报出“java.lang.IllegalStateException”异常,异常内容...
Struts2内置了多种结果类型,如dispatcher(重定向或转发到一个JSP页面)、stream(下载文件)等,也可以自定义结果类型。 5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,...
### Struts2中的Result与Type详解 #### 一、引言 在Struts2框架中,`Result`和`Type`是两个非常重要的概念。它们主要用于控制Action执行完毕后页面的跳转方式以及如何处理Action返回的结果。通过合理配置`Result`与...
Struts2支持多种Result类型,如JSP、FreeMarker、Stream等。配置在Action配置文件中,它定义了Action执行完成后如何跳转到下一个视图。 4. **OGNL(Object-Graph Navigation Language)**:OGNL是Struts2中的默认...
5. 结果类型(Result)配置,如dispatcher、stream等 6. Struts2与Ajax的集成,使用JQuery的$.ajax()或$.getJSON()方法 7. 请求与响应的处理,包括参数传递和数据封装 8. 实例演示:使用Struts2+Jquery+Ajax实现动态...
在Struts2中,Action是业务逻辑的核心组件,而Result是控制流程的关键部分,它定义了Action执行后如何展示结果。Result Type是Result的一种预定义类型,决定了结果如何被处理和展现给用户。在`struts-default.xml`...
4. **结果类型(Result Types)**:Struts2支持多种结果类型,如`dispatcher`(默认,将结果转发到JSP页面)、`stream`(用于文件下载)、`redirect`(重定向URL)等,可以根据不同的需求选择合适的结果类型。...
Struts2支持多种结果类型,如dispatcher(转发到JSP)、stream(下载文件)、redirect(重定向)。结果配置可以根据Action执行的结果(success、error等)决定跳转到哪个视图。 在提供的“struts2 demo”压缩包中,...
Struts2中预定义了一些结果类型,例如dispatcher(用于转发到一个JSP页面)、stream(用于流式传输文件)和redirect(用于重定向到另一个URL)。XSLTResult是其中之一,它专门用于处理XML数据的转换。 要使用XSLT...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,为开发者提供了构建可维护、可扩展的Web应用程序的结构。本资源包含的"Struts2全部jar包"是搭建Struts2项目的基础,确保了所有必要的...
Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。Struts2的核心在于提供一个强大的、灵活的、可扩展的架构,使得开发者能够更方便地实现业务逻辑与表现层...