`
zjnbshifox
  • 浏览: 316037 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Struts 2 的stream result

    博客分类:
  • Java
阅读更多
 <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 配置详解 Struts2 框架中 Result 配置是一种非常重要的配置,它直接影响着应用程序的执行结果。Result 配置通常用于定义 Action 的执行结果,例如将结果.redirect 到一个新的 URL,或者将结果....

    struts2 result type 介绍

    除了默认的Dispatcher Result,Struts2还提供了多种内置的Result Types,如Redirect、RedirectAction、Stream、Httpheader等。每种Result Type都有其特定的用途: 1. **Redirect**:此结果类型会触发HTTP的302临时...

    struts2中result类型之redirect

    在Struts2框架中,`Result`类型是动作(Action)执行后的一种处理方式,它定义了动作执行完后页面跳转或者数据处理的行为。`Redirect`是`Result`类型中的一种,它涉及到Web应用程序中的URL重定向概念,对用户浏览器...

    struts2的result标签使用

    在Struts2中,`Result`标签是核心组件之一,用于定义动作执行后如何跳转到相应的视图。让我们深入探讨一下`Result`标签的使用以及在Struts2框架中的作用。 ### 1. Struts2框架概述 Struts2框架基于MVC设计模式,...

    Struts2_result返回类型

    在Struts2中,Action是业务逻辑的核心,而Result则是Action执行后的响应方式。`Struts2_result返回类型`指的是在Action执行成功或失败后,如何将控制权传递到下一个页面或资源。这些返回类型定义了不同的结果处理...

    Struts2 Result类型

    Struts2 Result类型是Struts2框架中一个关键的概念,它是控制Action执行后响应到何处的重要组件。在处理用户请求并执行相应的业务逻辑后,Action需要将结果返回给客户端,而Result类型就是用来定义这个返回过程的...

    Struts2学习资源Result part1.rar

    Result是Struts2框架中的一个核心组件,它负责处理动作执行后的结果,如视图渲染、跳转等操作。在Struts2的学习过程中,理解并熟练运用Result类型是至关重要的。 在Struts2中,Result主要负责将处理后的数据传递给...

    难经3:Struts2,拦截器拦不住Result?

    Struts2支持多种Result类型,如dispatcher(用于转发到JSP页面)、redirect(用于重定向)和stream(用于流式下载)等。 **问题分析** 题目中提到的问题可能涉及到拦截器无法正确处理或影响到Result的执行。这可能...

    Struts2--result配置的各种视图转发类型

    在Struts2中,结果(Result)是Action执行后控制流程的重要部分,它负责将处理后的数据或者控制逻辑转向合适的视图。这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本...

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    在struts2中使用result里type="stream"的结果类型时,可以实现文件的下载管理,使用时也是比较顺畅,但是当在“下载提示窗口”中点击“取消按钮”时,总是报出“java.lang.IllegalStateException”异常,异常内容...

    留言板留言板struts2留言板struts2

    Struts2内置了多种结果类型,如dispatcher(重定向或转发到一个JSP页面)、stream(下载文件)等,也可以自定义结果类型。 5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,...

    Struts2 result和type

    ### Struts2中的Result与Type详解 #### 一、引言 在Struts2框架中,`Result`和`Type`是两个非常重要的概念。它们主要用于控制Action执行完毕后页面的跳转方式以及如何处理Action返回的结果。通过合理配置`Result`与...

    Struts2的视频学习代码

    Struts2支持多种Result类型,如JSP、FreeMarker、Stream等。配置在Action配置文件中,它定义了Action执行完成后如何跳转到下一个视图。 4. **OGNL(Object-Graph Navigation Language)**:OGNL是Struts2中的默认...

    Struts2+Jquery+Ajax

    5. 结果类型(Result)配置,如dispatcher、stream等 6. Struts2与Ajax的集成,使用JQuery的$.ajax()或$.getJSON()方法 7. 请求与响应的处理,包括参数传递和数据封装 8. 实例演示:使用Struts2+Jquery+Ajax实现动态...

    struts2的action的几种result type说明

    在Struts2中,Action是业务逻辑的核心组件,而Result是控制流程的关键部分,它定义了Action执行后如何展示结果。Result Type是Result的一种预定义类型,决定了结果如何被处理和展现给用户。在`struts-default.xml`...

    Struts2 Struts2 超好的Struts2 pdf 文档

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

    struts2 ,struts2 demo

    Struts2支持多种结果类型,如dispatcher(转发到JSP)、stream(下载文件)、redirect(重定向)。结果配置可以根据Action执行的结果(success、error等)决定跳转到哪个视图。 在提供的“struts2 demo”压缩包中,...

    struts2的XSLTResult结果类型

    Struts2中预定义了一些结果类型,例如dispatcher(用于转发到一个JSP页面)、stream(用于流式传输文件)和redirect(用于重定向到另一个URL)。XSLTResult是其中之一,它专门用于处理XML数据的转换。 要使用XSLT...

    Struts2全部jar包

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,为开发者提供了构建可维护、可扩展的Web应用程序的结构。本资源包含的"Struts2全部jar包"是搭建Struts2项目的基础,确保了所有必要的...

    struts2核心文件

    Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。Struts2的核心在于提供一个强大的、灵活的、可扩展的架构,使得开发者能够更方便地实现业务逻辑与表现层...

Global site tag (gtag.js) - Google Analytics